12

私の質問は、コマンドラインから(Windowsシステムで)aidl.exeを使用することに関するものです。この質問は、Eclipse、Netbeansなどとは何の関係もありません。

Android SDKには、次の3つのAIDL定義ファイルが含まれています。

IRemoteService.aidl IRemoteServiceCallback.aidl ISecondary.aidl

次のディレクトリにあります。

C:\ android-sdk-windows \ platforms \ android-2.1 \ samples \ ApiDemos \ src \ com \ example \ android \ apis \ app

簡単にするために、aidl.exeを上記のディレクトリにコピーしました。次に、コンソールウィンドウから、次の2つのコマンドを使用して.javaファイルを生成することに成功しました。

C:\ Android-project \ ApiDemos \ src \ com \ example \ android \ apis \ app> aidl IRemoteServiceCallback.aidl C:\ Android-project \ ApiDemos \ src \ com \ example \ android \ apis \ app> aidl ISecondary.aidl

これらのコマンドを呼び出すと、それぞれファイルIRemoteServiceCallback.javaとISecondary.javaが生成されました。ここまでは順調ですね。

どちらの.aidlファイルも単純であることに注意してください。'import'ステートメントは含まれていません。

残りの.aidlファイルであるIRemoteService.aidlには、19行目に次のインポートステートメントが含まれています。

インポートcom.example.android.apis.app.IRemoteServiceCallback;

このファイルでAIDLツールを実行すると、問題が発生します。

  C:\Android-project\ApiDemos\src\com\example\android\apis\app>aidl IRemoteService.aidl

これを行うと、次のエラーメッセージがコンソールウィンドウに出力されます。

IRemoteService.aidl:19:クラスcom.example.android.apis.app.IRemoteServiceCallbackのインポートが見つかりませんでした

AIDLツールは、実行されていたのと同じディレクトリでIRemoteServiceCallback.aidlファイルを見つけることができなかったようです。AIDLツールの「使用法」メッセージによると、この問題を解決するために明らかに使用できるコマンドがあります。

  -I<DIR>    search path for import statements.

問題:エラーメッセージを回避するような方法で-Iを指定できず、AIDLツールで.aidlファイルから'import'ステートメントを使用して.javaファイルを生成できませんでした。(注:Windows環境変数'path'を現在のディレクトリに設定しました。)これが私が試したいくつかのバリエーションです:

-Ic:\com\example\android\apis\app
-Ic:/com/example/android/apis/app
-I.\
-I.

簡単なものが欠けているに違いありません。驚いたことに、この質問のバリエーションがさまざまな場所に投稿されているのを見ましたが、AIDLコマンドラインの使用法に関する回答やドキュメント(aidl.exeの使用法情報を除く)はまだありません。誰かが私を手がかりにできますか?

ありがとう、マット

4

3 に答える 3

12

ソースファイルへのフォルダーパスを指定する必要がありますが、ベースsrcフォルダーの後のパスは指定しません。したがって、あなたの場合、正しいコマンドは次のとおりです。

C:\Android-project\ApiDemos\src\com\example\android\apis\app>aidl -IC:\Android-project\ApiDemos\src\ IRemoteService.aidl
于 2010-03-01T14:22:24.407 に答える
4

グーグルで3時間無駄な検索、ヤンデックスで1.5時間の検索が必要でした。解決策はここにあります:

http://programmingissues.wordpress.com/2011/07/22/cant-use-aidl-file-in-eclipse-android-project/

-p / path / to/framework.aidlキーを追加する必要があります

于 2012-07-18T08:38:41.297 に答える
3

おっしゃるように、ドキュメントはあまりありません。

したがって、Eclipseで冗長ビルド出力を有効にすると([ウィンドウ]>[設定]>[Android]> [ビルド]の下で)、Eclipseプラグインがビルドを実行するときに実行されるコマンドaidlとを含むコマンドをコンソールで確認できます。aapt

または、Cを理解できる場合は、AOSPのaidlソースコードを確認できます。

于 2010-02-01T20:07:24.723 に答える