1. 程式人生 > >Android Studio/Gradle構建問題集

Android Studio/Gradle構建問題集

> 使用Gradle遇到的問題及其他:

Android Studio安裝過程常見問題圖解-- http://jingyan.baidu.com/article/fd8044fad5bdca5031137ab7.html

1. 將GitHub上的新專案匯入Studio中
Pano360-master is registered as a git root,but no git repositories were found here.- https://stackoverflow.com/questions/43732446/registered-as-a-git-root-but-no-git-repositories-were-found-there

2. 升級到Studio 3.0.1和gradle-4.1遇到的兩個問題
 1.GradleConnectionException: Could not install Gradle distribution from 'https://services.gradle.org/distributions/gradle-4.1-all.zip'
  2.Gradle sync failed: Cause: error in opening zip file
解決方案:可能原來的Gradle包損壞了,需要重新下載,替換原來的Gradle版本-http://blog.csdn.net/qq_35434831/article/details/72235863
把這個“https://services.gradle.org/distributions/gradle-3.3-all.zip”下載下來,替換損壞的,就搞定了。

 Android Studio 首坑 Gradle sync failed: Cause: error in opening zip file 的錯誤- https://www.cnblogs.com/maydear/p/6849745.html

3. AS出現Gradle's dependency cache may be corrupt錯誤的解決辦法,一般出現這種問題的專案都是因為使用了gradle-3.3-all.zip,而gradle-3.3-all.zip無法直接在studio中下載下來。
方法一:直接在C盤C:\Users\desaco\.gradle使用者資料夾下刪掉.gradle資料夾即可。
方法二:將原來的gradle-4.1換成新的gradle-4.1-rc-1-all版本或將https換成Http;https\://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip
方法三:直接在網上找到gradle-3.3-all.zip下載下來,不要解壓縮,放在類似下面的目錄中 C:\Users\Administrator\.gradle\wrapper\dists\gradle-3.3-all\55gk2rcmfc6p2dg9u9ohc3hw9
 解決win10環境下Android studio匯入工程 Gradle's dependency cache may be corrupt 版本號不對應問題- http://blog.csdn.net/qq_32519479/article/details/73194964
 Android Studio出現Failed to open zip file問題的解決方法- http://www.jcodecraeer.com/a/anzhuokaifa/Android_Studio/2017/0317/7691.html

  還有個方法:下載比較高的版本的Studio,然後新建一個新的專案,跑起來之後,將新專案中的distributionUrl(替換Gradle版本)和classpath 
'com.android.tools.build:gradle:3.0.0'拷貝將要匯入的專案中,將Https換成Http。
【classpath 'com.android.tools.build:gradle:3.0.0' ; distributionUrl=http\://services.gradle.org/distributions/gradle-4.1-all.zip】

4. 多個模組moudle中AndroidManifest.xml合併問題

1.Manifest merger failed with multiple errors?

2.uses-sdk tools:overrideLibrary的用法
 我的專案的最低支援版本為8(Android 2.2),而第三方庫的最低支援版本為9(Android 2.3)?
在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合併時可以忽略最低版本限制。<uses-sdk tools:overrideLibrary="android.support.test.uiautomator.v18"/>。

5. 在github上下載的專案,匯入Studio一直失敗

  1> GitHub或新的專案下,可能需要配置的東西有:
classpath 'com.android.tools.build:gradle:2.1.2',2.1.2表示Studio版本
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip,2.10表示Gradle版本

2> 簡單解決 Android Studio匯入github下載的工程報錯的問題- http://blog.csdn.net/yxl503248523/article/details/50695917
如何從GitHub上下載的專案匯入到android studio- http://blog.csdn.net/a34927341/article/details/52949842
1.由於庫的作者的開發環境(as的版本,sdk的版本,buildtool等和我們當前本機開發環境的不同,所以gradle的相關的檔案和資料夾就會產生很大差異);
2.需要做的是:
 a.DownLoad Github上的Studio專案
 b.新建一個Studio專案,將新專案下的 gradle 資料夾 (必須)/build.gradle (必須)/gradle.properties (必須)/.gradle 資料夾 (非必須)(注意前面的.)拷貝後,替換Github DownLoad的Studio專案中的相應檔案,
 c.然後將GitHub專案匯入Studio中;
 d.檢視專案中app/module/library的build.gradle 是否有新的apply plugin,如有apply plugin: 'com.jfrog.bintray'
  ,要在全域性Project的build.gradle新增相應的依賴classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0"

 e.然後同步下專案

6. android studio 如何刪除一個module  
第一步:先刪除掉Module下的iml檔案
第二步:刪除掉setting.gradle裡面的Moudule的名字
第三步:關掉工程,重新開啟,會提示不能發現Module的錯誤Error Loading Project Cannot load module ..Detail,
點選Detail連結
第四步:彈出錯誤框,點選YES,這樣Moudule,就可以順利刪除
第五步:右擊Moudule,點選Delete,這樣就可以完整的刪除,不會在重新生成 。

7. Studio匯入ButterKnife jar包:
1)如果你是Eclipse,可以去官網下載jar包
2)如果你是AndroidStudio可以直接 File->Project Structure->Dependencies->Library dependency 搜尋butterknife即可,第一個就是.

8. Android Studio出現:Your project path contains non-ASCII characters.-其實很好解決啦,就是你的工程專案路徑或者專案名稱包含了中文.錯誤原因:引用專案的路徑中包含中文.

9. 升級為android studio3.0,gradle升級為4.1,報錯
Can't process attribute android:fillColor="@color/text_gray": references references to other resources are not supported by build-time PNG generation 
需要在專案的build.gradle指令碼中,增加對Vector相容性的支援
   使用Gradle Plugin 2.0以上:
android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
        javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true
    }
}
使用Gradle Plugin 2.0以下,Gradle Plugin 1.5以上:
android {
  defaultConfig {
    // Stops the Gradle plugin’s automatic rasterization of vectors
    generatedDensities = []
  }
  // Flag to tell aapt to keep the attribute ids around
  aaptOptions {
    additionalParameters "--no-version-vectors"
  }

}

10. 用Android studio2.3編寫了一個專案,現在Android studio升級到3.0後再開啟這個專案就報錯了
Error:(847) error: 'orientation|screenSize|keyboardHidden|keyboard|' is incompatible with attribute android:configChanges (attr) flags [colorMode=16384, density=4096, fontScale=1073741824, keyboard=16, keyboardHidden=32, layoutDirection=8192, locale=4, mcc=1, mnc=2, navigation=64, orientation=128, screenLayout=256, screenSize=1024, smallestScreenSize=2048, touchscreen=8, uiMode=512].
 解決方案:在gradle.properties檔案下加入android.enableAapt2=false(gradle.properties一般就在專案根目錄下,Studio版本小於3.0的專案會有一個gradle.properties檔案)

11. 解決Android Studio不能進入除錯模式問題 http://blog.csdn.net/xiaopang_love_study/article/details/68961556
Build -> Clean Project 
Build -> Rebuild Project 
第二步是在build.gradel(Module:app)檔案中加入除錯屬性
buildTypes {
    debug{
        minifyEnabled false
        debuggable true
    }
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

}

12 . Android Studio之could not reserve enough space for object heap報錯-http://blog.csdn.net/u014581901/article/details/51628798

13.  gradle project sync failed,為什麼會形成這種奇怪的現象呢,因為依賴包的路徑太長了。預設的情況下,gradle都在個人使用者的目錄下,有的人的名字長,有的名字短。名字長的一下子就溢位了,導致工程不能運行了。
 解決辦法1 :把gradle的依賴包換一個地方。比如在eclipse中,通過gradle外掛,直接修改目錄即可。 注意,新指定的目錄不能為 .gradle或者類似 以.開頭,否則會沒有效果。
 解決辦法2.修改gradle版本,使用你本地已經sync成功的版本:D:\Program Files\Android\Android Studio\gradle\gradle-2.8。注意,這樣並不能一定保證能解決問題,如果不成功,還是要改回去
  gradle Error:CreateProcess error=216, 該版本的 %1 與您執行的 Windows 版本不相容。請檢視計算機的系統資訊,瞭解是否需要 x86 (32 位)或 x64 (64 位)版本的程式,然後聯絡軟體釋出者。
  gradle project sync failed,occurred during initialization of VM Could not reserve enough space for object heap--修改專案gradle.properties檔案,新增下面一行程式碼:
org.gradle.jvmargs=-Xmx512m -XX:MaxPermSize=512m 

  引用的Jar包不能編譯問題,Android studio如何更改gradle版本?-- http://jingyan.baidu.com/article/3c343ff7f84e950d36796357.html (找到專案下面的build.gradle檔案,修改Gradle版本)。

14. Android Studio 安裝完成,初次啟動卡在download Components解決辦法:
  首先關閉安裝嚮導,如果無法關閉可以在工作管理員中手工關掉程序,然後開啟Android Studio安裝目錄的bin目錄下面的idea.properties檔案,新增一條禁用開始執行嚮導的配置項:disable.android.first.run=true
  後來進入AS首頁,配置sdk;點選configure→project defaults→project structure到這麼一個介面配置android sdk 和jdk的路徑.

開啟 Android Studio 安裝目錄下的bin目錄,查詢並開啟檔案 studio.exe.vmoptions,修改程式碼:-Xmx512m 為 -Xmx256m

   android studio1%與windows不相容?-- http://www.zhihu.com/question/50793073/answer/122961021 , http://blog.csdn.net/gao_fei1129/article/details/52681225

  Android Studio Error: Error:CreateProcess error=216, This version of %1 is not compatible with the version of Windows you're running-- http://stackoverflow.com/questions/37624369/android-studio-error-errorcreateprocess-error-216-this-version-of-1-is-not-c.

16.   Android Studio報錯UTF-8+BOM的解決辦法,eclipse可以自動把UTF-8+BOM格式轉換成UTF-8格式,而Android studio沒有這種功能。UTF-8編碼最好不要帶BOM,帶BOM的UTF-8編碼是微軟的習慣,如果在其它系統(我用的MAC OSX)很可能就會出現問題。

17.Eclipse Unknown error: Unable to build: the file dx.jar was not loaded from the SDK folder!解決方法- https://blog.csdn.net/betterfate/article/details/70527228

18. Studio與Gradle-- Error: Your project contains C++ files but it is not using a supported native build system

解決方案:https://blog.csdn.net/lanuage/article/details/53072303

1.首先在工程目錄下的gradle.properties檔案的末尾加上一句:Android.useDeprecatedNdk=true 
2.然後在buildTypes中加入sourceSets {}
buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        sourceSets {
            main {
                jni.srcDirs = []
            }
        }

    }

19. gradle編譯時,出現Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com
  The following dependencies on the compile classpath are found to contain annotation processor.  Please add them to the annotationProcessor configuration.專案中配置butterknife:7.0.1,框架的版本過低。
在主app的build.gradle裡面的
defaultConfig {
        applicationId "*.*.*"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 10
        versionName "1.6.6"
        flavorDimensions "versionCode"
        javaCompileOptions {
            annotationProcessorOptions {
                includeCompileClasspath = true    //加上這行即可
            }
        }
    }

20. error: style attribute ‘@android:attr/windowEnterAnimation’ not found;error: value attribute ‘@android:attr/windowEnterAnimation’ not found

全域性搜尋@android:attr/windowEnterAnimation找到相應的地方,把@去除

21. Android studio升級3.0,提示“Error:Cannot choose between the following configurations of project”錯誤- https://blog.csdn.net/tangxl2008008/article/details/78416138
 Error:Cannot choose between the following configurations of project :pickerview:  
  - debugApiElements  
  - debugRuntimeElements  
  - releaseApiElements  
  - releaseRuntimeElements 
解決辦法:
   1、project的build.gradle檔案,刪除“apt”配置:
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' //刪除  
   2、module的build.gradle檔案,刪除“android-apt”引用:
apply plugin: 'android-apt'  //刪除  
   3、module的build.gradle檔案,修改“dependencies”中的“apt”方式 為“annotationProcessor”方式:
apt "引用項"  //老方式,刪除  

annotationProcessor "引用項" //新方式 

-- Android Studio遇到Failed to resolve: common問題- https://blog.csdn.net/jahonn/article/details/80639576
將Project的build.gradle檔案中的google()挪到jcenter()上面一行就可以了:
buildscript {  
    repositories {  
        google() //TODO 20180610 add 
        jcenter()  
    }  
    dependencies {  
        classpath 'com.android.tools.build:gradle:3.0.0'  
  
        // NOTE: Do not place your application dependencies here; they belong  
        // in the individual module build.gradle files  
    }  
}  
  
allprojects {  
    repositories {  
        google()  //TODO 20180610 add
        jcenter()  
    }  

22.升級AndroidStudio3.0 Unable to resolve dependency for ':[email protected]/compileClasspath問題解決-https://blog.csdn.net/hglyh/article/details/79751591
 app的build.gradle裡buildTypes 寫了什麼,module裡必須也寫上,寫成空的也行:
buildTypes {
        debug {
            .....
        }
        release {
            .....
        }
        sourceSets {
           .....
        }
    }
 然後修改對應module的build.gradle,新增對應的程式碼:
buildTypes {
        debug {
            .....
        }
        release {}
        sourceSets {}
    }

  23.Error:Library projects cannot set applicationId. applicationId is set to 'org.geometerplus.zlibrary.ui.android' in default config.
 module的build.gradle裡面defaultConfig記憶體在:,module中有applicationId,刪除即可
    defaultConfig {
        applicationId "com.du.android.recyclerview"
        minSdkVersion 21
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
紅色部分的字型,這時刪除紅色標註的內容即可!

24. Error:Execution failed for task ':app:processDfDebugManifest'.
> Manifest merger failed with multiple errors, see logs
 這說明在合併所有的Manfest檔案時衝突了,機率最大的兩個原因是
1.build.gradle中設定的compileSdkVersion buildToolsVersion minSdkVersion targetSdkVersion不統一,需要按宿主專案的配置進行統一。
2.幾個專案的AndroidManifest檔案中設定了多個android:allowBackup    android:icon   android:label  android:theme 屬性,這裡需要在宿主專案的Manfest檔案中新增兩句話
manifest 節點下加入
xmlns:tools="http://schemas.android.com/tools"
application節點下加入
tools:replace="android:allowBackup,icon,theme,label"

不能寫成tools:replace="android:allowBackup,android:icon,android:theme"   雖然不報錯,但是不起作用。

25. Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDfDebug'.
com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

完美解決Error:Execution failed for task ':APP:transformClassesWithDexForDebug'...問題- https://blog.csdn.net/lvshuchangyin/article/details/53785494

26. > Error: Please select android SDK
開啟Android Studio報錯“Error running ***: Please select Android SDK”- 
https://blog.csdn.net/aqi00/article/details/78858336/
https://www.jianshu.com/p/0fb5a857662e?from=timeline

27. studio3.0後gradle新的依賴方式
Android 升級gradle 外掛到 3.0.+- https://blog.csdn.net/o279642707/article/details/78962871
gradle新的依賴方式你真的瞭解嗎?- https://blog.csdn.net/RunningShadow_007/article/details/78681788

28. android studio 3.1.2找不到android monitor解決辦法->因為as在新版本,更名了,變為android profile,點選下圖即可
通過Android Studio的Android Profiler來動態的檢視我們APP的記憶體使用情況;
也可以用DDMS來檢視記憶體資訊 ,DDMS開啟方式:Tools->Android->Android Device Monitor。

29. the modules [xx1, xx2] point to the same directory in the file system.
解決方法:
在選單工具欄中:File → Invalidated Caches / Restart… → Invalidate & Restart

30. Missing javaCompileTask for variant: debug/0 from output dir:
gradle升級到了4.1後, 需要升級retrolambda版本為3.7.0,classpath 'me.tatarka:gradle-retrolambda:3.7.0'

31.-- Each module has to have a unique path
 把.iml檔案給上傳上去了,每次builde都會出現不同的錯誤,這次出現:Each module has to have a unique path,在stackflowe上說,直接刪除就行了,結果,就是直接把Project.iml檔案刪除就可以了。
 在選單工具欄中:File → Invalidated Caches / Restart… → Invalidate & Restart。

相關推薦

Android Studio/Gradle構建問題

> 使用Gradle遇到的問題及其他: Android Studio安裝過程常見問題圖解-- http://jingyan.baidu.com/article/fd8044fad5bdca5031137ab7.html 1. 將GitHub上的新專案匯入Studio

Android Studio/Gradle構建太慢解決辦法

已經使用Android Studio進行開發超過一年,隨著專案的增大,依賴庫的增多,構建速度越來越慢,現在最慢要6分鐘才能build一個release的安裝包,在網上查詢資料,發現可以通過一些配置可以加快速度,這裡跟大家分享一下。 開啟gradle單獨的守護程序 在下

從程式設計的角度理解gradle指令碼﹘﹘Android Studio指令碼構建和程式設計[魅族Degao]

本篇文章由嵌入式企鵝圈原創團隊、魅族資深工程師degao撰寫!隨著Android 開發環境從Eclipse轉向Android Studio,我們每個人都開始或多或少要接觸gradle指令碼,大多數人將g

Android Studio怎麼構建配置檔案(config.gradle)

1、新建config.gradle 在android studio的根專案中新建config.gradle檔案(和settings.gradble同目錄) 開始寫想要的資訊 ext { a

android studio gradle統一管理版本

andro 6.0 include implement app compile targe tool file 創建config.gradle ext { android = [ compileSdkVersion : 26,

Android Studio Gradle優化

Android Studio Gradle優化 能夠提升Gradle執行效率的提示: Gradle Daemon(Gradle守護程序) org.gradle.daemon=true Parallel Project Execution(並行專案執行) org

Android Studio Gradle檔案解釋其作用

新手在使用AndroidStudio時通常會遇到如下問題:  1. Android sutdio開啟一個工程一直卡在Background Tasks怎麼辦?  2. 手動配置Gradle Home後,怎麼還是提示錯誤?  3. 下載了Gradle,配置了gradle

(Android Studio)gradle配置多個程式碼倉庫repositories

repositories {     mavenCentral()     maven { url "https://jitpack.io" }     maven { url "http://maven.al

Android Studio Gradle Metadata特別慢的解決方法

Android Studio Gradle Metadata特別慢的解決方法 更改build.gradle  buildscript { repositories { // jcenter() // jcenter(){ url 'http://

Android Studio Gradle編譯 引數配置

你是否在使用AS進行開發時遇到編譯出現了錯誤,但是Build輸出了只是簡單的Task任務出錯之類的資訊,完全看不出哪裡出現了問題。 其實只需要設定一下Gradle Command-line Options就可以了。 如下圖: 新增option --full-stacktr

Android Studio Gradle app/build/intermediates/transforms/AspectTransform/debug

Unexpected scopes found in folder '某個路徑/app/build/intermediates/transforms/AspectTransform/debug'. Required: SUB_PROJECTS. Found: EXTERNAL_LIBRARIES

android studio gradle:download http://jcenter 卡住解決辦法

使用阿里雲的國內映象倉庫地址,就可以快速的下載需要的檔案 修改專案根目錄下的檔案 build.gradle : buildscript { repositories { maven{ url 'http://maven.aliyun.com/nex

Android Studio Gradle 進階設定

前言 一直想總結一些常用的 gradle 的用法,省的每次都要查閱,也方便自己複習和備忘。ps:最近也看到了一篇關於高效閱讀方法的文章,產生些許共鳴,也推

androidGradle構建專案流程

對於android開發,java語言那肯定都是很熟悉了,但對於android專案的構建應該就不是那麼的瞭解了,android專案的構建是通過gradle,而gradle所使用的語言確實groovy,這對於很多人來說可能就不是那麼的瞭解,groovy是基於java語言,並且也是

更新android studio gradle 不成功解決方法

報錯資訊如下 8:43    Gradle sync failed: Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'.         Could not d

Android Studio Gradle Build Error: Can not download Junit.jar

在使用Android Studio過程中,每次build的時候都會出現一堆下載的程序,並用最終還會報錯:can not download junit.jar,這可能是由於沒有修改Android Stud

Android Studio gradle外掛版本和gradle版本對應關係

1、gradle外掛版本配置位置: project對應的build.gradle檔案中: buildscript {     repositories {         jcenter()     }     dependencies {         classp

android studio gradle從2.2.3升到3.1.1需要修改的地方

1.compile  欄位修改為 implementation 2.欄位修改為 annotationProcessor 3. def appName = 'anyan'; def getTime(

Android Studio Gradle sync failed: Connection timed out: connect (解決辦法)

             因為更新Android Studio到最新版,我採用下載最新版重新安裝的方式,遇到最大的問題就是Gradle sync failed: Connection timed out: connect ,在網上嘗試了各種辦法都得不到解決,這裡記錄下大佬教我

解決Android Studio Gradle Build Running 特別慢的問題

                今天收到一封MAIL,是轉發了N次轉發過來的,標題就叫“FW: ^_^聽說是真有此事”,內容如下(我是不信的,至於你怎麼看,就看你的行動了。不過,真的有趣,讓我想起了以前的關於將IC卡放到微波爐里加熱的事件了,兩者很相似。):我在www.123de6.cn上看到了相關的資料(有