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 ディストリビューションの一部ではありませんが、そのライブラリ (マップを含む) の大きなサブセットを含める計画があります。現在、プロジェクトで行っていることは、Guava ソースをダウンロードしてから、使用したいクラスを翻訳することです。

このアプローチの問題の 1 つは、依存クラスのクロージャを決定することです。つまり、マップが依存する 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 に答える