私はLibrary
プロジェクトをセットアップし、このライブラリプロジェクトに依存するプロジェクトを持っています-すべてが正常にコンパイルされ、Dependent
プロジェクトは正常に実行されました。
Library
ただし、プロジェクトのアクティビティを使用しているときに断続的な問題が発生します。
私のLibrary
プロジェクトはライブラリ プロジェクトとして「チェックを外す」ことができ、「ピッカー」アクティビティは分離して実行できます。プロジェクトを単独で実行しLibrary
ても問題なく動作します。
Library
依存プロジェクトからプロジェクト (および「ピッカー」アクティビティ)を使用するNullPointerExceptions
と、「ピッカー」アクティビティがリソースを見つけられないというエラー (または歴史的に DexOp) が表示されます。
以前にこれを経験したことがあるかどうか、誰か教えてもらえますか?
編集
layout.xml
プロジェクト アクティビティで使用されるを依存プロジェクトに手動でコピーするLibrary
と、プロジェクトは「ピッカー」アクティビティを正しく開きます。これは必須ですか?!きっとそうではありませんか?R.java
これにより、Library
プロジェクト内の整数IDのマージ/参照に問題があるかどうか疑問に思います。
編集
これが何らかの結果をもたらすかどうかはわかりませんが、私のLibrary
プロジェクトの 1 つは、さまざまなフロント エンド プロジェクトで使用される一連のカスタム ビューのラッパーです。
これらのカスタム ビューにはそれぞれアクティビティがあり、個別にテストできます。
これらのビューの 1 つにはカスタム属性があり、単独で実行している間は非常にうまく機能します。ただし、依存プロジェクトが属性を正しくプルして元の名前空間に保持しているようには見えないため、インポートされたレイアウトでコンパイル エラーがスローされます。
[2012-05-16 12:07:28 - Project] D:\opt\workspace\CustomGlowList\res\layout\main.xml:14: error: No resource identifier found for attribute 'listId' in package 'com.company.library.glowlist'
[2012-05-16 12:07:28 - Project] D:\opt\workspace\CustomGlowList\res\layout\main.xml:14: error: No resource identifier found for attribute 'type' in package 'com.company.library.glowlist
編集
プロジェクトに存在する重複したファイル名を削除することで、DexOp エラーが解決されましたDependent
。ファイル名が問題なのか、ファイルの内容なのかはわかりません。
編集
私はまだこの問題の解決策を見つけることができませんでした(ただし、@ yorkwの回答は確かにxml属性に役立ちます!ありがとう)。
ただし、この問題を断続的にすることができました:
各ライブラリ プロジェクトを確認し、すべてに独自の名前空間 (など) があることcom.company.library.component1
を確認しましたcom.company.library.component2
。いくつかのクリーンアップ (正しい優先順位で順序付けされた各プロジェクト) の後、この問題は自然に解決しますが、コンポーネントをテストするためにライブラリ/ライブラリではなく切り替えると、最終的に戻ってきます。