Android疑难杂症大汇总

此文专门记载本人在开发过程中遇到的一些印象比较深刻的问题,以及踩过的一些坑,包括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:

Android疑难杂症大汇总_第1张图片

 

接着假如你的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列表,然后点击刷新按钮,刷新完成之后,即可

Android疑难杂症大汇总_第2张图片

 

AndroidStudio checkout svn项目时提示证书验证失败 svn: E230001:Server SSL certificate verification failed

原因

所checkout的svn地址是https开头的,需要验证证书

解决方法

首先依次点击File-Setting-Version Control-Subversion ,勾选Enable interactive mode

再次checkout项目,会弹出提示说是否接受证书,选择接受,并输入svn账号密码,即可成功拉取项目。

 

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

你可能感兴趣的:(Android)