2017-04-14 148 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

相关问题