【问题标题】:Android Application crashed when share debug APK from output folder从输出文件夹共享调试 APK 时 Android 应用程序崩溃
【发布时间】:2017-04-06 12:00:19
【问题描述】:

我正在开发一个只有一个屏幕条码扫描的应用程序,我通过 zxing 库实现了这一点。但我的问题是,如果我使用 android studio 安装应用程序,它工作正常,但如果我从输出文件夹与蓝牙、电子邮件、Xender 等共享此 apk。应用程序已安装,但当我打开应用程序时,它会崩溃并且异常是NoClassFoundException。

这里是 Logcat:

致命异常:主要

    Process: com.jenex.cartracking, PID: 31223                                                                       

    java.lang.RuntimeException: Unable to instantiate activity
 ComponentInfo{com.jenex.cartracking/com.jenex.cartracking.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.jenex.cartracking.MainActivity" on path: DexPathList[[zip file "/data/app/com.jenex.cartracking-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
                                                                                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3029)
                                                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3300)
                                                                                   at android.app.ActivityThread.access$1000(ActivityThread.java:211)
                                                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1705)
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                   at android.os.Looper.loop(Looper.java:145)
                                                                                   at android.app.ActivityThread.main(ActivityThread.java:6946)
                                                                                   at java.lang.reflect.Method.invoke(Native Method)
                                                                                   at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
                                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
                                                                                Caused by: java.lang.ClassNotFoundException: Didn't find class "com.jenex.cartracking.MainActivity" on path: DexPathList[[zip file "/data/app/com.jenex.cartracking-1/base.apk"],nativeLibraryDirectories=[/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:1094)
                                                                                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3019)
                                                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3300) 
                                                                                   at android.app.ActivityThread.access$1000(ActivityThread.java:211) 
                                                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1705) 
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                   at android.os.Looper.loop(Looper.java:145) 
                                                                                   at android.app.ActivityThread.main(ActivityThread.java:6946) 
                                                                                   at java.lang.reflect.Method.invoke(Native Method) 
                                                                                   at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 
                                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 
                                                                                Suppressed: java.lang.ClassNotFoundException: com.jenex.cartracking.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)
                                                                                        ... 13 more
                                                                                Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

【问题讨论】:

  • 请发布您的整个 LogCat。这有助于任何人给出适当的解决方案。
  • 同样的问题。我曾经也与测试人员共享该 apk。为了测试,我什至用 android studio 创建了一个空的 clean 项目,从 studio 启动它,它在手机上运行良好。但是,如果我从“输出”文件夹中放置 apk,apk 安装得很好,但在启动时会崩溃。现在正在寻找原因和解决方案。

标签: android crash android-sharing


【解决方案1】:

您必须先清理构建,然后才能共享应用并进行调试构建。

按照这个简单的步骤,

  1. 转到构建 -> 清理项目
  2. 转到构建 -> 构建 Apk

这将生成构建 Apk。分享这个 Apk。

希望这会有所帮助。

【讨论】:

  • 我试过了,没解决,请看我的Logcat
  • 你有没有在build.gradle的defaultConfig中设置multiDexEnabled true
【解决方案2】:

看来我也有同样的问题。现在任何项目都会发生这样的异常,即使是刚刚创建的空白和干净的项目。我曾经与测试人员共享 myproject_debug.apk,但现在它在启动时崩溃。也许它是在更新 Android Studio 或平台工具后开始的,我不确定。

所以,我找到了一些适合我的工作

在从输出文件夹复制 project-debug.apk 之前:

  • 转到 Android Studio 中的菜单并打开菜单“构建”

  • 点击“构建 APK”

成功构建后,我从输出文件夹中复制了 myproject-debug.apk,它运行良好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 2011-02-07
    • 2011-09-09
    • 1970-01-01
    相关资源
    最近更新 更多