Android疑难杂症大汇总

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/IT_ZJYANG/article/details/83281172

此文专门记载本人在开发过程中遇到的一些印象比较深刻的问题,以及踩过的一些坑,包括Gradle以及AndroidStudio都有,会一直持续更新~

目录

  • Android5.0以下(Android4.x)出现NoClassDefFoundError
  • 运行项目时报错Error: Activity class {} does not exist.Error while Launching activity
  • 运行项目时报错The apk file xxxx.apk dose not exist in disk Error while Installing APK

 

Android5.0以下(Android4.x)出现NoClassDefFoundError

原因

我们平时的项目经过编译打包,其中的Java代码(包括Library)转化为DEX格式的字节码文件,这是Android 5.0之前的Dalvik虚拟机决定的(5.0之后改为ART虚拟机),并且采用short类型引用DEX文件中的method,而short类型能够表示的最大值是65536,也就说单个DEX文件中最多只有65536个method能够得到引用,所以一旦方法数超过65536个,即会爆出这个Error

解决方法

首先在app的build.gradle中开启multidex:

接着假如你的Application的自定义的话,就直接继承于MultidexApplication或者重写Application的attachBaseContext()方法,并调用Multidex.install(this):

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}

运行项目时报错Error: Activity class {} does not exist.Error while Launching activity

原因

AndroidStudio找不到该Activity的类,可能是未注册Activity或者编译器的bug

解决方法

首先按照字面意思排查是否有该Activity以及是否在AndroidMainfest.xml中已注册,假如确认已经注册,可以尝试命令行执行:adb uninstall com.xxx.xxx(apk包名),将数据完全从手机上卸载干净,再次运行即可。


运行项目时报错The apk file xxxx.apk dose not exist in disk Error while Installing APK

原因

在工程目录中找不到该名字的apk文件

解决方法

点击AndroidStudio的侧边栏的gradle展开项目的gradle列表,然后点击刷新按钮,刷新完成之后,即可

填坑之路未完待续.......

猜你喜欢

转载自blog.csdn.net/IT_ZJYANG/article/details/83281172
今日推荐