Android 打开应用提示 java.lang.ClassNotFoundException - Go语言中文社区

Android 打开应用提示 java.lang.ClassNotFoundException


问题记录: 在版本更新得过程中我加入了一下代码导致android studio 打包apk的时候分出了3个dex文件, 在运行到5.0以下的机器时打开直接闪退抛出异常 java.lang.ClassNotFoundException。

在经过clean和rebuild, 删除build下面文件等等操作方式之后问题都没有得到解决,最后还是验证了一个事情, 多看官方文档才是王道啊, 官方解决方案地址: https://developer.android.com/studio/build/multidex.html

大体分为几个步骤:

项目级别build.gradle文件:加入multiDexEnabled true和compile ‘com.android.support:multidex:1.0.1’

android {
    defaultConfig {
        ...
        minSdkVersion 15 
        targetSdkVersion 26
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.android.support:multidex:1.0.1'
}

在application中, 如果你没有自己的application,你需要如下操作

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp">
    <application
            android:name="android.support.multidex.MultiDexApplication" >
        ...
    </application>
</manifest>

如果你用了自己的application, 你可以选择继承:

public class MyApplication extends MultiDexApplication { ... }

或者你无法更改你集成的application的话你可以:

public class MyApplication extends SomeOtherApplication {
  @Override
  protected void attachBaseContext(Context base) {
     super.attachBaseContext(context);
     Multidex.install(this);
  

综上方法可以解决Android 5.0以下 java.lang.ClassNotFoundException的问题, 根源是因为5.0以下采用了Dalvik虚拟机分包导致的, 官方文档很详细, 这也是我再次发现很多问题官方文档都给出了最好的解决

关注我的 Google Play 独立开发公众号
通过从零到一在 Google Play 开发出下载量 300万 APP 的经历,我将把很多精彩的故事分享到公众号,扫描下方二维码和我一起开发 APP 赚美元吧!

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/CoderYue/article/details/79149133
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-27 22:13:40
  • 阅读 ( 1533 )
  • 分类:Go应用

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢