2

全て、

アプリ内で既存のオープンソース プロジェクト (A と呼びます) をライブラリとして使用しようとしています。プロジェクト A には、独自のライブラリ プロジェクト (B) も付属しています。プロジェクト A は正常にコンパイルおよび実行されます。ただし、アプリ内で A を使用しようとすると (A 内の「Is Library」を確認し、アプリに A を追加しました)、「パッケージ内の属性 'X' のリソース識別子が見つかりません...」というエラーがいくつか表示されます。特定の属性が B 内に存在します。それらが A 内の R に追加されていることも確認しましたが、実際にはそうでした。

私の質問: アプリがこれらのリソースの存在を認識しないのはなぜですか?

私はあちこちを検索しましたが、私のような状況は1つしか見つかりませんでした:

Android ライブラリがそのリソースを他のプロジェクトにプルしていない

しかし、私のリソースの名前が同じであることはわかりません。

私はADT v20.0でEclipseを使用しています

どんな助けにも感謝します!

編集: 役立つ場合は、使用しようとしているオープンソース アプリは AnySoftKeyboard (ASK) です。また、新しいプロジェクトを作成し、ASK をライブラリとして追加しようとしましたが、さいころはありません。

EDIT2: R Id はライブラリの final として宣言されていないため、ASK をライブラリにする一部で、いくつかの switch ステートメントを if-else ステートメントに変換する必要がありました。

4

1 に答える 1

2

エラーは、ライブラリに変換した AnySoftKeyboard プロジェクトでのカスタム属性の使用が原因であるようです。この回答で言及されている解決策が最近 ADT (Rev 17) に追加されたことがわかりました。

指示に従って、すべてのインスタンスを置き換えてみました

" http://schemas.android.com/apk/res/com.menny.android.anysoftkeyboard "

" http://schemas.android.com/apk/res-auto "

新しく変換されたライブラリ プロジェクトで、プロジェクトを含むアプリをビルドして実行することができました (ただし、実際には機能をテストしませんでした)。

お役に立てれば。

于 2012-07-13T02:46:57.357 に答える