轉自: http://www.jianshu.com/p/c5db81cbc438
本文屬於個人平時項目開發過程遇到的一些問題,記錄下來並總結解決方案,希望能幫到大家解決問題,有些問題的解決方案是在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編碼即可
(3)將項目導入到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: unknown
Our PID: 1412
Owner Operation: unknown
Our operation: Initialize cache
Lock 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 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "net.mmloo2014.android" minSdkVersion 14 targetSdkVersion 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.xml
Suggestion: 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_7 targetCompatibility JavaVersion.VERSION_1_7 } }
原文鏈接:http://www.jianshu.com/p/c5db81cbc438
著作權歸作者所有,轉載請聯繫作者獲得授權,並標註“簡書作者”。