私は、複数のgradleモジュール(plugin com.android.library)を互いに参照する(ツリー、フラットではない)プロジェクトを持っています。私はAIDLを集中的に使用しているので、別のモジュール(modB)のAIDLインターフェイスでAIDLインターフェイスを1つのモジュール(modA)から参照しています。Gradleのモジュール/サブプロジェクト間でAIDLインターフェイスを使用
MODA/srcに/メイン/ AIDL/MODA/foo.aidl:
package modA;
interface foo {
void modAcall();
}
MODB/srcに/メイン/ AIDL/MODB/bar.aidl:
package modB;
import modA.foo;
interface bar {
foo modBcall();
}
MODB /ビルド。 Gradleの:
dependencies {
compile project(':modA')
}
私はMODBでAIDLファイルにMODAのparcelablesを参照することができると私はMODBでMODBではなく、AIDLでJavaコードでMODAのインタフェースを参照することができます。代わりに、エラーメッセージcouldn't find import for class
がaidlツールによって表示されます。
私は、.aar-filesにもライブラリのaidlインターフェイスに関する情報が含まれていないことに気付きました。パーセルテーブルのみがリストされています。私はこれが上記の問題と同じ理由を持っていると思います。
すでに1つの場所にaidlファイルがあるので、変更を手動でコピーする必要があるため、別のサブプロジェクトにコピーする必要はありません。私はmodAのものを含むようにmodBのsrcディレクトリを変更するのが間違っているので、これにシンボリックリンクを使う考え方も気に入らない。
- aarにaidlインターフェイスを含めて他のモジュールで使用できる方法はありますか?
- 補助モジュールのaidlファイルを使用するためにaidlインクルードパスを拡張することは可能ですか?(サブプロジェクトの場合、aidlファイルはファイルシステム上に存在するので、これは可能でなければなりません)生成されたJavaインタフェース/クラスのファイルはすでにaar/module importに含まれていますか?
私はこれを試しましたが、私はそのaidlPackageWhiteListがサポートされていない得る:( – w3bMak3r