【问题标题】:Android App Crashes on Real Device If apk is manually installed如果手动安装 apk,Android 应用程序在真实设备上崩溃
【发布时间】:2017-09-10 09:50:38
【问题描述】:

我的应用程序在模拟器中运行良好,甚至在 android studio 安装的用于调试目的的真实设备中运行良好,但如果使用 apk 文件手动安装,它会崩溃。

如果需要,我准备粘贴任何其他代码,例如 Activity。

这里是日志:

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

【问题讨论】:

  • 如果启用,请在设置中禁用即时运行功能。
  • 这可能会有所帮助 - stackoverflow.com/questions/26557737/…
  • @DixitPatel 现在工作! :) 谢谢老兄。
  • 你可以在这篇文章中找到你的答案NoClassDefError
  • 我在 android studio 中找不到即时运行

标签: java android crash


【解决方案1】:

只需转到:

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

并禁用instant run

【讨论】:

  • 在 android studio 3.5.2 中看不到即时运行
  • 我在 Android Studio 2020.3.1 中找不到这个选项。
【解决方案2】:

如果您刚刚升级了您的 android studio。

disable -> Instant Run 没有此选项。 (不在菜单上)

似乎使用新的 android studio 和 gradle 升级来安装您需要正确构建的 apk。

选项 1: 使用命令行中的 gradle

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

选项 2:来自 android studio

Android Studio -> build -> build APK(或生成sighed APK)

生成的 apk 可以在设备上正常安装。

注意:如果您使用此版本的 android studio 启动新应用程序,您将看到从 studio 运行时不再生成任何 apk。

【讨论】:

  • 谢谢!!!因为这个,我已经敲了好几天的头!我知道“即时运行”选项的问题,并且已经有一段时间没有使用它了!但我从未想过使用选项 2“正确构建 apk”会有所帮助!
【解决方案3】:

我遇到了类似的问题。

注意 Apk 的大小,它会非常小,这是因为启用了即时运行功能。禁用它

可能是Android Studio没有包含Apk中的所有文件,当我们使用即时运行来加快进程时。

有人知道为什么会这样吗?

转到:

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

【讨论】:

    【解决方案4】:

    Android Studio --> 文件 --> 设置 --> 构建、执行、部署 --> 即时运行。 并禁用即时运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-23
      • 1970-01-01
      • 1970-01-01
      • 2019-07-27
      • 2020-07-15
      • 2019-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多