我正在尝试使用 j2objc 来翻译一些 java 代码。当我尝试导入任何类时,我的代码使用 google Guava 库
import com.google.common.collect.Maps;
我收到一条错误消息,说它无法解决。
The import com.google.common cannot be resolved
要在 j2objc 转换器中启用 Guava 支持,是否需要做一些特别的事情?
我正在尝试使用 j2objc 来翻译一些 java 代码。当我尝试导入任何类时,我的代码使用 google Guava 库
import com.google.common.collect.Maps;
我收到一条错误消息,说它无法解决。
The import com.google.common cannot be resolved
要在 j2objc 转换器中启用 Guava 支持,是否需要做一些特别的事情?
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
确定源文件列表的工具计划在下一个版本中使用。