2016-09-03 6 views
0

APKをコンパイルして端末で正常にテストし、Google Playストアで試してみるとすぐに機能しなくなります。このアプリは既存のアプリのコピーです。同じパッケージ名を2回持つことはできません。AndroidManifest.xmlでパッケージ名の名前を変更し、コンパイルしてテストした後、Playストアにアップロードしました。重複したPlayストアアプリのインスタンス化に失敗しました

アプリをデバイスにコピーしたときにアプリが動作する理由はわかりませんが、Playストアから読み込んだときに同じアプリが失敗します。 Playストアデベロッパーコンソールからアクセスしたクラッシュレポートを作成しました。誰かがStore上でアプリケーションを正常に複製した経験があれば、あなたの助けに感謝します。

java.lang.RuntimeException: Unable to instantiate application de.schildbach.wallet.artbyte.WalletApplication: java.lang.ClassNotFoundException: Didn't find class "de.schildbach.wallet.artbyte.WalletApplication" on path: DexPathList[[zip file "/data/app/de.schildbach.wallet.artbyte-1/base.apk"],nativeLibraryDirectories=[/data/app/de.schildbach.wallet.artbyte-1/lib/arm, /data/app/de.schildbach.wallet.artbyte-1/base.apk!/lib/armeabi, /vendor/lib, /system/lib]] 
at android.app.LoadedApk.makeApplication(LoadedApk.java:680) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6395) 
at android.app.ActivityThread.access$1800(ActivityThread.java:229) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1887) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:7325) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
Caused by: java.lang.ClassNotFoundException: Didn't find class "de.schildbach.wallet.artbyte.WalletApplication" on path: DexPathList[[zip file "/data/app/de.schildbach.wallet.artbyte-1/base.apk"],nativeLibraryDirectories=[/data/app/de.schildbach.wallet.artbyte-1/lib/arm, /data/app/de.schildbach.wallet.artbyte-1/base.apk!/lib/armeabi, /vendor/lib, /system/lib]] 
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 
at android.app.Instrumentation.newApplication(Instrumentation.java:1005) 
at android.app.LoadedApk.makeApplication(LoadedApk.java:670) 
... 9 more 
Suppressed: java.lang.ClassNotFoundException: de.schildbach.wallet.artbyte.WalletApplication 
    at java.lang.Class.classForName(Native Method) 
    at java.lang.BootClassLoader.findClass(ClassLoader.java:781) 
    at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 
    ... 12 more 
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available 

答えて

0

例外は、dexパスリストにクラスが見つからないためにビルドが失敗したと示しています。プロジェクトをクリーンアップしてapkをビルドし、ndk-buildコマンドを使ってネイティブコードを再コンパイルします。その後、ローカルデバイスで試してから、プレイストアにアップロードしてください。

0

AndroidManifest.xmlのパッケージ名は、コードベースにもよく使用されます。アクティビティのクラス名としてパッケージ名を変更してもJava/dexコードは変更しないと、Androidは既に気付いていたクラスを見つけることができません。

パッケージ相対的なクラス名のために(.で始まるものを)のAndroidManifest.xmlを確認し、古いパッケージ名を付加:

Old package name: org.example.myapp 
Old activity name: <activity android:name=".MyActivity" ..> 

New package name: com.example.newappname 
New activity name: <activity android:name="org.example.myapp.MyActivity" ..> 
関連する問題