Android Studio常见的一些错误

1、导入工程、module出现时间长或者报错
解决办法:首先将要导入工程或者module中的buildToolsVersion版本以及对应的v4、v7包等版本号改成自己工程的版本,然后讲gradle版本改成和自己工程一样的;
gradle版本修改包含以下:
把build.gradle包里的gradle版本号修改修成自己电脑环境的版本(可以查看以前可以运行工程的版本)

替换wrapper文件成本电脑上正常工程的wrapper文件

2、finished with non-zero exit value 1,2,3错误

(1),finished with non-zero exit value 1
出现这个错误是因为被编译的代码或资源有问题,这种错误一般会提示出错误的相关资源,如果没有提示则要自己回忆下自己之前加了或者改了那些东西;
(2),finished with non-zero exit value 2
出现这个错误是因为jar包或者compile的依赖库冲突,这个错误往往不提示冲突的jar包是那个,这个时候需要自己寻找冲突的jar包了,一般是app下和module里面都导入了相同的jar包导致(还有就是一些jar包里面包含了相同的jar包,例如:A.jar 里包含有B.jar包,如果同时导入了A.jar和B.jar包也会出现依赖包冲突错误)

(3),finished with non-zero exit value 3
出现这个错是因为编译的代码过多导致内存不足,解决方式为在build.gradle中添加一下代码块即可:
android {

// ...
dexOptions {
    javaMaxHeapSize "4g"
}

}
注:正常情况下一般不要添加上面代码块,不然会出现以下错误
如图:

3、Error:Execution failed for task ‘:app:processDebugMain’.

Manifest merger failed :

原因:
AS的Gradle插件默认会启用Manifest Merger Tool,若Module中也定义了与主项目相同的属性(例如默认生成的android:icon和android:theme,声明了activity等),则此时会合并失败,并报上面的错误。
解决办法:
方法1:直接把module里Mainfest内容拷贝到app下的Mainfest然后删除module中的即可,如果module里面也有application那么把module里面的application的代码拷贝到app里面的自定义application中;
方法2:在app下的Manifest.xml的application标签下添加tools:replace=”android:icon, android:theme”(多个属性用,隔开,并且记住在manifest根标签上加入xmlns:tools=”http://schemas.android.com/tools”,否则会找不到namespace哦)
方法3:在build.gradle根标签上加上useOldManifestMerger true (懒人方法)

4、 Error:The number of method references in a .dex file cannot exceed 64K.或者提示

此错误是方法数超出64K;一般是因为module(eclipse中叫Library)太多或者代码方法总数太多导致;
关于64 k引用限制
Android应用程序(APK)在Dalvik可执行文件的形式包含可执行的字节码文件(DEX)文件,其中包含已编译的代码来运行你的应用程序。Dalvik可执行规格限制一个Dex文件包含65536个方法:包括Android框架方法、Library方法的总数、和你自己的代码方法总数。因为65536等于64×1024,这一限制被称为“64k引用限制”。
这个极限就要求我们配置应用程序的构建过程,需要生成多个DEX文件,所以称为multidex 配置。

解决办法:

第一步,修改主module的build.gradle文件
在gradle中依赖multidex,并启用multiDexEnable:
android {


defaultConfig {

// Enabling multidex support.
multiDexEnabled true
}

}

dependencies {
compile ‘com.android.support:multidex:1.0.1’
}

第二步,在自定义Application中重写attachBaseContext(Context)方法,并调用MultiDex.install(this);如下:

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

5、 Error:Execution failed for task ‘:app:buildInfoDebugLoader’. > Exception while doing past iteration
解决办法:将\app\build\intermediates\builds\debug文件删除即可。

6、Error:No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi

在android studio中编译工程时,偶尔会遇到Error:No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi这样的错误,可能原因是更新了相关组件导致的,解决方法是到Android studio ( Tools -> Android -> SDK Manager ) . 选中ndk项,并将其删除,如果程序需要的话,可重新安装,这样保证文件夹位置的正确,就不会出现这样的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值