Android常见错误(二)
来源:互联网 发布:献给虚无的供物 知乎 编辑:程序博客网 时间:2024/05/16 12:02
本文属于个人平时项目开发过程遇到的一些问题,记录下来并总结解决方案,希望能帮到大家解决问题,有些问题的解决方案是在StackoverFlow上找到的,建议大家遇到问题多去上面找,基本上都能找到解决方案的。
(1)将Eclipse项目导入到Android studio 中 很多点9图出现问题解决方法:
在build.gradle里添加以下两句:
aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false
用来关闭Android Studio的PNG合法性检查的,直接不让它检查。
(2)Android Studio 错误: 非法字符: '\ufeff' 解决方案|错误: 需要class, interface或enum
原因:
Eclipse可以智能的把UTF-8+BOM文件转为普通的UTF-8文件,Android Studio还没有这个功能,所以使用Android Studio编译UTF-8+BOM编码的文件时会出现” 非法字符: '\ufeff' “之类的错误解决方法:
手动将UTF-8+BOM编码的文件转为普通的UTF-8文件。用EdItPlus打开.java文件依次:文档》文本编辑》转换文本编码》选择UTF-8编码即可
将项目导入到AS中出现以下问题:
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'. > com.android.bui
- 解决方法:
在build.grade中添加以下代码:android{packagingOptions {exclude 'META-INF/DEPENDENCIES.txt'exclude 'META-INF/NOTICE'exclude 'META-INF/NOTICE.txt'exclude 'META-INF/LICENSE'exclude 'META-INF/LICENSE.txt' }}
(4)未知错误
Error:Timeout waiting to lock cp_proj class cache for build file '/Users/Mr.xiao/Desktop/AndroidShopNC2014MoblieNew/androidShopNC2014Moblie/build.gradle' (/Users/Mr.xiao/.gradle/caches/2.10/scripts/build_3cyr7hzjurcc62ge3ixidshos/cp_proj).It is currently in use by another Gradle instance.Owner PID: unknownOur PID: 1412Owner Operation: unknownOur operation: Initialize cacheLock file: /Users/Mr.xiao/.gradle/caches/2.10/scripts/build_3cyr7hzjurcc62ge3ixidshos/cp_proj/cache.properties.lock
- 解决方案
以上是错误提示。
解决的思路很简单只需要把cache.properties.lock文件删除了就可以了。当时我们删除的时候会被占用这时候需要进入任务管理器结束关于java的进程就行比如 java 的jdk 删除后重启让java jdk启动 启动Android Studio就能启动APK了。
(5)修改了Android项目的最小SDK版本之后出现很多stysle文件找不到
- 解决方案
compileSdkVersion 23buildToolsVersion "23.0.3"defaultConfig {applicationId "net.mmloo2014.android"minSdkVersion 14targetSdkVersion 23}
compileSdkVersion 是多少版本的
那么compile 'com.android.support:appcompat-v7:23.2.1’ 就是啥版本的。
(6)Android studio 编译问题:finished with non-zero exit value 2
- 问题:
Error:Execution failed for task ':androidShopNC2014Moblie:transformClassesWithDexForDebug'.>com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2
- 解决方案
这个错误在app的build.gradle里面添加下面这句就好了。
android { defaultConfig { multiDexEnabled true }}
(7)Android studio 编译问题:finished with non-zero exit value 1(由于导入的依赖出现重复造成的)
- 问题:
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.> com.[Android](http://lib.csdn.net/base/15).build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'F:\Program Files (x86)\[Java](http://lib.csdn.net/base/17)\jdk1.8.0_31\bin\java.exe'' finished with non-zero exit value 1
- 解决方案
这个是因为依赖包重复了 (像v4和nineoldandroids),app中实现了对easeUI的依赖,但是app和easeUI都添加了对这个包的依赖。所以就报这个错误,修改之后再报,就clean,rebuild一下。
(8)问题
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/apache/http/ConnectionClosedException.class
- 解决方案
这个是在我们启动的时候报错的,而不是在编译的时候,原因是这样的,报这个错是因为有2个库中存在相同的类。大家可以看到stackoverflow上有人也提了这样的问题。只需要删除其中的一个就可以解决了。
(9)添加第三方依赖出现的问题
Error:Execution failed for task ':app:processDebugManifest'.> Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 19 declared in library [com.github.meikoz:basic:2.0.3] /AndroidStudioCode/EnjoyLife/app/build/intermediates/exploded-aar/com.github.meikoz/basic/2.0.3/AndroidManifest.xmlSuggestion: use tools:overrideLibrary="com.android.core" to force usage
错误原因
出现这个错误的原因是我引入的第三方库最低支持版本高于我的项目的最低支持版本,异常中的信息显示:我的项目的最低支持版本为14,而第三方库的最低支持版本为19,所以抛出了这个异常。解决方案
在AndroidManifest.xml文件中标签中添加
<uses-sdk tools:overrideLibrary="xxx.xxx.xxx"/>
其中的xxx.xxx.xxx为第三方库包名,如果存在多个库有此异常,则用逗号分割它们,例如:
<uses-sdk tools:overrideLibrary="xxx.xxx.aaa, xxx.xxx.bbb"/>
这样做是为了项目中的AndroidManifest.xml和第三方库的AndroidManifest.xml合并时可以忽略最低版本限制。
(10)Android studio 编译问题:finished with non-zero exit value 1(由于buildtools版本太高造成的)
- 错误
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
错误原因
buildToolsVersion版本太高,我原来的 buildToolsVersion "24.0.0” 需要jdk1.8,而我的是jdk1.7,所以一直报这个错,刚开始以为是v4包和V7包冲突,因为之前遇到这样的问题,而这次删除V4包之后依然报这个错,上stackoverflow搜了一下,把buildTools版本降下来就好了。解决方案
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
}
(11)Android studio 编译问题:Gradle DSL not found 'android()'
- 问题
- 解决方案
- 配置build.gradle:
buildscript {repositories { jcenter()}dependencies { classpath 'com.android.tools.build:gradle:2.1.2' }}allprojects { repositories { jcenter() }}buildscript {repositories { jcenter()}dependencies {classpath 'com.android.tools.build:gradle:2.1.2' }}allprojects {repositories {jcenter() }}
- 配置app/build.gradle:
apply plugin: 'com.android.application'android { compileSdkVersion 23 buildToolsVersion '23.0.3' defaultConfig { minSdkVersion 9 targetSdkVersion 23 versionCode 1 versionName '1.0' }}dependencies { compile 'com.android.support:appcompat-v7:23.2.1'}
最后再同步一下sync即可。
(12)Android studio 编译问题:Gradle DSL not found 'android()'
- 问题描述
Error:(51, 52) 错误: -source 1.6 中不支持 diamond 运算符(请使用 -source 7 或更高版本以启用 diamond 运算符)
- 解决方案
- 方案一
- 方案二
在build gradle中进行配置如下代码:
最后同步一下即可android {compileOptions {sourceCompatibility JavaVersion.VERSION_1_7targetCompatibility JavaVersion.VERSION_1_7}}
NoClassDefFoundError
multiDexEnabled true
sourceSets.main {
jniLibs.srcDirs =['libs']
}
在Application中重写attachBaseContext方法,如下
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
- Android常见错误(二)
- Android常见错误处理(二)
- Android常见错误之二
- Android开发常见异常与错误系列(二)
- JSF常见错误(二)
- 【常见错误】android常见错误
- Android常见错误(一)
- C语言常见错误(二)
- hadoop常见错误及解决办法(二)
- ftp的常见错误(二)
- QT常见错误二
- ubuntu13.04下载 编译android 4.0 (二) 内涵常见错误
- ANDROID 常见错误(不断添加总结)
- Android常见错误处理(一)
- Android常见错误处理(三)
- android常见错误(实时更新)
- 常见的内存错误【二】
- Android 常见错误
- oracle删除用户时,提示“无法删除当前已连接的用户”
- UIView常用的一些方法小记之setNeedsDisplay和setNeedsLayout
- 游戏动作感设计初探
- 04_多线程_死锁
- SpringMVC查找POJO对象的流程
- Android常见错误(二)
- 利用spring aop 处理异常
- ActiveMQ -- 消息持久化
- 安卓开发之你该知道的Linux命令
- 数据结构实验之查找六:顺序查找
- c3p0异常,exception is java.lang.NoClassDefFoundError: com/mchange/v2/log/jdk14logging/ForwardingLogger
- 关于xml文件转换成java对象以及java对象转换成xml的工具类
- sftp
- Android中home键监听一个好用的方法。(按home键后播放器停止播放)