完全に機能するアプリケーションをコピーしてライブラリにしました([プロパティ]-> [Android]、[ライブラリ])。また、このプロジェクトの名前を個別に追跡するために名前を変更しました--com.mylib。
次に、元のアプリケーションcom.myappを取得し、一部のデータ(実際のコードなし)を含むすべての.javaファイルを削除しました。これを[プロパティ]->[Android]を介してリンクし、mylibライブラリに追加された[ライブラリ]セクションでリンクしました。緑色のチェックが表示されます。
myappのマニフェストアクティビティを変更して、Googleが推奨するように、すべてのライブラリをプレフィックスとして使用するようにしました。
android:name="com.mylib.AppInfo"
ライブラリとプロジェクトの両方をクリーンアップし、Eclipseも終了して再起動しました。正常にコンパイルされ、プログラムはメインアクティビティ「AppInfo」を実行しますが、他のアクティビティにアクセスしようとすると、常にClassNotFoundExceptionで失敗します。
myappマニフェストで次のようなさまざまな名前プレフィックスも試しました。
android:name="com.myapp.AppInfo"
android:name=".AppInfo"
しかし、これらはメインアプリに到達できません。ライブラリまたはmyappマニフェストでアクティビティクラス名は変更されていませんが、大文字と小文字の両方ですべてが一致することを確認するために、文字ごとにレビューしました。
Windows 7 x64でEclipseを使用し、アプリはminSdk 11に設定されています。最新のSDKツールもロードされています(v20.0.3)。また、Proguardは(まだ)使用されておらず、実際のハードウェア(Android 4.0)を使用しています。
ライブラリを機能させるために髪を引っ張っています。別のプロジェクトで同じように動作する完全に異なるライブラリとアプリのペアがあり、2つのライブラリとプロジェクトの間ですべてのプロパティとオプションを比較しましたが、これが失敗する原因となる欠落または追加されたものは見つかりません。
LogCatからの完全なエラーは次のとおりです。
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.myapp/com.myapp.LiveWallpaperSettings}: java.lang.ClassNotFoundException: com.myapp.LiveWallpaperSettings
これを追跡する方法に関する提案やアイデアはありますか?