Android studio使用過程當中遇到的問題

好多問題都是修改gradle文件解決的,若是一下問題沒有註明修改什麼地方,那就是gradle文件了html

問題彙總:java

一、android

NinePatch(.9.png)圖片的問題 
若是某個圖片命名成了.9.png,實際圖片並非Ninepatch格式的,或格式錯誤,會編譯出錯,解決辦法是按Ninepatch格式修改圖片,嚴格安規範,四周都要限制。git

二、github

android studio 非法字符: \65279 Error:(1, 10) 錯誤: 須要class, interface或enum 
這個錯誤是文件BOM致使的 
只要將文件編碼方式改掉就行,不要使用UTF-8 WITH BOM(UTF-8包含簽名) 
簡單的把文件刪除,在Android Studio新建文件,再把原文件內容粘貼過去就行 
若是須要改的文件太多,給你們推薦一個小工具 BOM頭小工具。apache

三、api

AndroidMenifest.xml重複權限問題 
須要把重複的權限去掉,就不會再報警告了app

四、ide

Error:(26, 9) Attribute application@icon value=(@drawable/logo) from AndroidManifest.xml:26:9
Error:(28, 9) Attribute application@theme value=(@style/ThemeActionBar) from AndroidManifest.xml:28:9
is also present at XXXX-trunk:XXXXLib:unspecified:15:9 value=(@style/AppTheme)
Suggestion: add ‘tools:replace=」android:theme」‘ to <application> element at AndroidManifest.xml:24:5 to override
Error:Execution failed for task ‘:XXXX:processDebugManifest’.
> Manifest merger failed with multiple errors, see logs

緣由:工具

AS的Gradle插件默認會啓用Manifest Merger Tool,若Library項目中也定義了與主項目相同的屬性(例如默認生成的android:icon和android:theme),則此時會合並失敗,並報上面的錯誤。

 

解決方法有如下2種:

方法1:在Manifest.xml的application標籤下添加tools:replace=」android:icon, android:theme」(多個屬性用,隔開,而且記住在manifest根標籤上加入xmlns:tools=」http://schemas.android.com/tools」,不然會找不到namespace哦)

方法2:在build.gradle根標籤上加上useOldManifestMerger true (懶人方法)

參考官方介紹:

http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger

五、

Library Project裏面的BuildConfig.DEBUG永遠都是false。這是Android Studio的一個已知問題,某Google的攻城獅說,Library projects目前只會生成release的包。

Issue 52962: https://code.google.com/p/android/issues/detail?id=52962

 

解決方法:(某Google的攻城獅推薦的方法)

Workaround: instaed of BuildConfig.DEBUG create another boolean variable at lib-project’s e.g. BuildConfig.RELEASE and link it with application’s buildType.

https://gist.github.com/almozavr/d59e770d2a6386061fcb

參考stackoverflow上的這篇帖:

http://stackoverflow.com/questions/20176284/buildconfig-debug-always-false-when-building-library-projects-with-gradle

六、

每次保存的時候,每行多餘的空格和TAB會被自動刪除(例如結尾、空行的多餘空格或TAB)

特別是每次準備提交SVN,Review代碼時候你就蛋疼了,顯示一堆不相關的更改,看的眼花。

 

解決方法:

Settings->IDE Settings->Editor->Other->Strip trailing spaces on Save->None

七、

編譯的時候,報:Failure [INSTALL_FAILED_OLDER_SDK]。通常是系統自動幫你設置了compileSdkVersion

 

解決方法:

修改build.gradle下的compileSdkVersion ‘android-L’爲compileSdkVersion 19(或者你本機已有的SDK便可)

八、

> com.android.build.api.transform.TransformException: 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

 

解決方法:

在工程的gradle中設置

能夠支持超過65k的方法數

defaultConfig {        
    // Enabling multidex support.
    multiDexEnabled true
}

九、

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: ch/boye/httpclientandroidlib/ConnectionClosedException.class

 

解決方法:

重複包,把對應重複的刪除便可通常爲v4衝突

 十、

Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml

 

解決辦法:

  • 在Manifest標籤下添加
xmlns:tools="http://schemas.android.com/tools"
  • 在Application標籤下添加
tools:replace="android:icon"

十一、

Error:Execution failed for task ':transformClassesWithDexForArmv7Release'.> 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 3

 

解決:

dexOptions {    
javaMaxHeapSize "4g"
}

 

十二、
多語言未翻譯問題

解決:
能夠在lint.xml中加入

<issue
id="MissingTtanslation"
severity="ignore"
/>

或者更乾脆點,按照studio的提示來
打開項目目錄下的build.gradle文件(這就是gradle的配置文件,gradle就是編譯工具了),而後按照提示一股腦把新參數所有加到android裏面。

android {
lintOptions{
checkReleaseBuilds false
abortOnError false
}}

這樣打包就不成問題了。checkReleaseBuilds就是在打包Release版本的時候進行檢測,這裏就直接關掉了,也能夠打開,這樣報錯還會顯示出來。關鍵的就是abortOnError必定要設爲false,這樣即便有報錯也不會中止打包了。

1五、

 

FATAL EXCEPTION: main

 Process: com.wanda.property_client, PID: 11910

 java.lang.NoClassDefFoundError: org.apache.cordova.PluginEntry

致使4.4系統安裝程序直接崩掉

 

解決:

在application中加入:

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

1六、

Gradle sync failed: 'com.android.build.gradle.BasePlugin' does not implement the Plugin interface

 

解決:

在gradle中修改 

classpath 'com.android.tools.build:gradle:0.14.0+'

classpath 'com.android.tools.build:gradle:2.1.0'
相關文章
相關標籤/搜索