0

これにはいくつかの既存の質問がありますが、解決策はどれもうまくいかないようです。

アプリにホワイト ラベルを付けたい。最初のステップは、プロジェクトのプロパティに移動し、プロジェクトをライブラリ プロジェクトとしてマークすることです。

次に、新しい 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 のいくつかのドローアブルを更新するだけです。

4

1 に答える 1