これにはいくつかの既存の質問がありますが、解決策はどれもうまくいかないようです。
アプリにホワイト ラベルを付けたい。最初のステップは、プロジェクトのプロパティに移動し、プロジェクトをライブラリ プロジェクトとしてマークすることです。
次に、新しい Android アプリケーション プロジェクトを作成し、プロパティを開き、ライブラリ プロジェクトを [Android] タブの [ライブラリ] セクションに追加します。
コンパイルしようとすると、次のエラーが表示されます。
Unable to execute dex: Multiple dex files define Lcom/facebook/android/R$drawable;
私のアプリは Facebook ライブラリを使用しています (jar 形式ではありません)。添付のスクリーンショットは、私のワークスペースがどのように見えるかを示しています。com_facebook_android と wheel という別のライブラリは、私のトップ プロジェクト (ライブラリ プロジェクト) の libs フォルダーにはありませんが、プロパティにライブラリとして追加されています。一度そこに移動しようとして、たくさんの問題に遭遇したと思います。それらがなくてもアプリは正常に機能しているので、残しました。これが問題なのかどうかはわかりません。
誰かが私を正しい方向に向けることができますか? stackoverflow に関する既存の質問にもかかわらず、私はこれを機能させる方法を理解できませんでした。
アップデート:
私はほとんど問題を解決しました。ライブラリ プロジェクトを別の方法で WhitelabelTest に追加しました。
私はもともと WhitelabelTest > Properties > Android > Library > に移動し、ライブラリ プロジェクトをリストに追加しました。これを取り除きました。
代わりに、ライブラリ プロジェクトの bin フォルダーに移動し、jar ファイル (LibraryProject.jar と呼びます) をコピーし、それを WhitelabelTest の /libs フォルダーに貼り付けました。次に、LibraryProject.jar > Build Path > Add to Build Path を右クリックしました。
これにより、WhitelabelTest プロジェクトをコンパイルして、エミュレーターにインストールすることができました。
ただし、アプリケーションを起動すると、次のクラッシュが発生しました。
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to instantiate application com.example.whitelabeltest.WhitelabelTest: java.lang.ClassNotFoundException: com.example.whitelabeltest.WhitelabelTest in loader dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar:/data/app/com.example.whitelabeltest-1.apk]
at android.app.LoadedApk.makeApplication(LoadedApk.java:466)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3260)
at android.app.ActivityThread.access$2200(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:969)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.example.whitelabeltest.WhitelabelTest in loader dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar:/data/app/com.example.whitelabeltest-1.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at android.app.Instrumentation.newApplication(Instrumentation.java:942)
at android.app.LoadedApk.makeApplication(LoadedApk.java:461)
... 11 more
おそらくこれは、WhitelabelTest の /src フォルダーが完全に空であるためでしょうか? WhitelabelTest に新しいソース コードを追加していません。ライブラリ プロジェクトを新しい Android アプリケーション プロジェクトにインポートしようとしているだけなので、コードを共有して /res のいくつかのドローアブルを更新するだけです。