此文专门记载本人在开发过程中遇到的一些印象比较深刻的问题,以及踩过的一些坑,包括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列表,然后点击刷新按钮,刷新完成之后,即可
AndroidStudio checkout svn项目时提示证书验证失败 svn: E230001:Server SSL certificate verification failed
原因
所checkout的svn地址是https开头的,需要验证证书
解决方法
首先依次点击File-Setting-Version Control-Subversion ,勾选Enable interactive mode
再次checkout项目,会弹出提示说是否接受证书,选择接受,并输入svn账号密码,即可成功拉取项目。
填坑之路未完待续.......