3

我正在尝试使用 j2objc 来翻译一些 java 代码。当我尝试导入任何类时,我的代码使用 google Guava 库

import com.google.common.collect.Maps;

我收到一条错误消息,说它无法解决。

The import com.google.common cannot be resolved

要在 j2objc 转换器中启用 Guava 支持,是否需要做一些特别的事情?

4

1 回答 1

3

Guava 的翻译目前不是 j2objc 发行版的一部分,尽管计划包含该库的一个大子集(包括 Maps)。今天项目做的是下载 Guava 源,然后翻译他们想要使用的类。

这种方法的一个问题是确定依赖类的关闭。即Maps依赖哪些Guava类,这些类的依赖关系是什么等等。我们让 javac 确定:

$ javac -d /tmp/guava -sourcepath <guava-source-paths> com.google.common.collect.Maps
$ cd /tmp/guava

$ find com -name '*.class' > /tmp/all-classes.list  # list all classes
$ fgrep -v '$' < /tmp/all-classes.list > /tmp/classes.list # get rid of inner classes
$ sed -s '/class$/java/' < /tmp/classes.list > /tmp/source-files 

确定源文件列表的工具计划在下一个版本中使用。

于 2012-11-30T18:33:16.627 回答