2017-04-14 161 views
4

我的應用程序在仿真器中運行良好,甚至在android studio安裝的實際設備中進行調試,但如果使用apk文件手動安裝,它會崩潰。Android應用程序在真實設備上崩潰如果手動安裝apk

我準備好粘貼任何其他代碼,如Activity(如果需要)。

這裏是logcat的:

 
04-14 12:20:44.392 6220-6220/? I/art: Late-enabling -Xcheck:jni 
04-14 12:20:44.465 6220-6220/test.planner W/System: ClassLoader referenced unknown path: /data/app/test.planner-1/lib/arm 
04-14 12:20:44.467 6220-6220/test.planner I/InstantRun: starting instant run server: is main process 
04-14 12:20:44.470 6220-6220/test.planner D/AndroidRuntime: Shutting down VM 
04-14 12:20:44.471 6220-6220/test.planner E/AndroidRuntime: FATAL EXCEPTION: main 
                  Process: test.planner, PID: 6220 
                  java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{test.planner/test.planner.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "test.planner.MainActivity" on path: DexPathList[[zip file "/data/app/test.planner-1/base.apk"],nativeLibraryDirectories=[/data/app/test.planner-1/lib/arm, /vendor/lib, /system/lib]] 
                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2327) 
                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                   at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                   at android.os.Handler.dispatchMessage(Handler.java:102) 
                   at android.os.Looper.loop(Looper.java:148) 
                   at android.app.ActivityThread.main(ActivityThread.java:5417) 
                   at java.lang.reflect.Method.invoke(Native Method) 
                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                  Caused by: java.lang.ClassNotFoundException: Didn't find class "test.planner.MainActivity" on path: DexPathList[[zip file "/data/app/test.planner-1/base.apk"],nativeLibraryDirectories=[/data/app/test.planner-1/lib/arm, /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.newActivity(Instrumentation.java:1067) 
                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2317) 
                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
                   at android.app.ActivityThread.-wrap11(ActivityThread.java)  
                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
                   at android.os.Handler.dispatchMessage(Handler.java:102)  
                   at android.os.Looper.loop(Looper.java:148)  
                   at android.app.ActivityThread.main(ActivityThread.java:5417)  
                   at java.lang.reflect.Method.invoke(Native Method)  
                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
                   Suppressed: java.lang.ClassNotFoundException: test.planner.MainActivity 
                   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 

+2

如果啓用,請禁用設置中的即時運行功能。 –

+0

這可能有幫助 - http://stackoverflow.com/questions/26557737/multidexapplication-not-recognized – TDG

+0

@DixitPatel現在工作! :) 謝了哥們。 –

回答

10

只要到:

Android Studio --> File --> Setting --> Build, execution, deploy --> Instant run. 

和禁用instant run

1

我面臨類似的問題。

請注意Apk的大小,它的大小非常小,這是因爲啓用了即時運行功能。只需禁用它

可能是Android Studio不包括Apk中的所有文件,當我們使用即時運行來加速進程時。

任何機構都知道爲什麼會發生這種情況?

轉到:

Android Studio --> File --> Setting --> Build, execution, deploy --> Instant run. 
4

如果你剛剛升級的Android工作室。

您不會將此選項設置爲disable -> Instant Run。 (不在菜單上)

似乎與新的android工作室和gradle升級,以安裝apk,你需要正確地建立它。

選項1:與來自命令行的gradle

./gradlew :appName:clean 
./gradlew :appName:build 

選項2:從機器人工作室

Android Studio -> build -> build APK(或生成嘆氣APK)

所生成的apk可安裝在設備上罰款。

注意:如果你使用這個版本的android studio開始一個新的應用程序,你會發現當你從工作室運行時,沒有再生成apk。

+0

謝謝!因爲這個,我一直在敲我的頭幾天! 我知道「即時運行」選項的問題,並且一段時間以來一直沒有使用它!但是,我從未想過,使用選項2「正確構建apk」會有所幫助! – Juan

相關問題