Android Studio 编译报错问题汇总

下面是在工作中Studio 中经常报错的一些问题,现汇总如下:

由于引用库版本和编译版本不一致导致

studio 报错如下:

1
2
3
Error:Execution failed for task ':app:processcvtouchDebugResources'
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command
'/Users/Aaron/Library/Android/sdk/build-tools/21.1.1/aapt'' finished with non-zero exit value 1

  • 解决办法:
    主要报错是说v21/values-v21.xml 文件中很多资源找不到,不匹配的问题。
    最终发现在build.gradle 中配置的compileSdkVersion 与引用的库版本不一致导致,例如编译使用的是21,但是引用库是23的版本,例如:compile 'com.android.support:recyclerview-v7:23.3.0'

此时将两个版本统一即可。比如修改compileSdkVersion 的版本为 23 则可以解决此问题。

由于项目中与Library中jar包重复引起的异常。

常见错误如下,一般在Multiple dex files 后面会跟上重复的jar的包名。
com.android.dex.DexException:Multiple dex files define Landroid/support/v4/*

  • 解决办法:
    查看各个依赖的子工程的libs以及build.gradle文件夹下面是否有相同的jar包。将多余的去掉重新clean并build即可

由于引用不同sdk版本导致的问题

Error:Execution failed for task ':CommonLibrary:LibImageLoader:mockableAndroidJar'.> java.lang.NullPointerException (no error message)

  • 解决办法:在相关的build.gradle 文件中的末尾添加如下代码:
    1
    2
    3
    4
    5
    tasks.whenTaskAdded { task ->
    if (task.name.contains('mockableAndroidJar')) {
    task.enabled = false
    }
    }

Unsupported major.minor version 52.0

Error:(1, 0) Cause: com/android/build/gradle/AppPlugin : Unsupported major.minor version 52.0

此错误主要是因为本地的gradle build tools 版本比配置的低了,要么升级AS的版本,要么就是改project的build.gradle里的dependencies下面的classpath 与AS的版本保持一致就行。

安装时提示 apk 在磁盘上未找到

错误日志如下:
The APK file /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk does not exist on disk.

  • 解决办法: 在AS工程的的右上角,Gradle projects上面点击刷新按钮,如下图:
    http://stackoverflow.com/questions/34039834/the-apk-file-does-not-exist-on-disk

编译提示‘default not found’

错误提示如下:Error:Configuration with name 'default' not found.

  • 解决办法:

    1. 打开settings.gradle发现里面有很多个include ‘:app’这样的include,然而发现在工程的目录下面根本没有include的项目,所以将需要include的项目添加进来,如果include的项目不需要,则将其include语句直接删掉,重新sync尝试。

    2. 按照上面的操作,要么添加了相应inlcude的工程进来,但是发现还是会提示这样的default not found语句,怎么回事呢,原来用gradle编译的工程,每个工程下面都必须要有build.gradle文件,才能够编译include的工程。整个大工程才能sync通过。把include工程中都添加上相应的gradle配置文件,再重新进行sync,整个工程都通过了。

参考链接 http://www.wxtlife.com/2015/09/26/slove-studio-default-not-found/

WangXin wechat
欢迎订阅我的微信公众号,第一时间获取最新文章!
坚持原创技术分享,您的支持将鼓励我继续创作!