Android Studio3 0填坑指南

AWeiLoveAndroid發表於2017-12-13

序言

Android Studio3.0

作為這個世界上走在最前沿的生物“猿”,怎麼能對新事物一無所知呢,10月26日,隨著Android 8.1 Oreo的預覽版釋出,Android Studio3.0正式版也釋出了,作為Android開發的猿們我們應該早就知道谷歌在今年5月的開發者大會上就說了要支援Kotlin語言,所以這次更新一個比較大的點就在於支援Kotlin語言了,下面就跟著LZ的腳步來探索一下AS3.0吧 相信很多人很早就體驗過谷歌爸爸放出來的體驗版本了,雖然說正式版已經出了,但是很多人也不敢輕易貿然的更新,因為怕會掉進坑裡出不來(真是一隻膽小的猿,鑑定完畢)


安裝

如果你從Android Studio內部點選更新的話,會跳轉到Android的官網,沒有梯子的同學可以點選 谷歌官方Android 開發中文網 下載更新:

網址: https://developer.android.google.cn/studio/index.html

不同平臺版本


安裝過程中遇到的問題

1、Gradle Sync failed:

Gradle sync failed: Cause:
    com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;
    Consult IDE log for more details (Help | Show Log) (8s 123ms)
複製程式碼

其實一開始不是這個錯,最開始是一個redownload的一個錯,後來LZ把2.3版本的給刪了,快取給清除了,然後就變成這個錯了。既然有錯,那就解決唄,順手百度了一個,下面看看stackoverflow的解決方案:

同步失敗問題在stackflow上的解決

這個方法確實也適用於我,把ButterKnife降級之後就OK了。如果有其他更好的解決方法,歡迎私信我。

“一個問題的解決是為了更好的迎接下一個問題的出現”——魯迅

解決方案1:把專案中依賴的ButterKnife降級到8.4.0

解決方案2:把gradle plugin版本降低至2.3.3 重新編譯下就可以了


2、Unable to resolve dependency for:

出現了Unable to resolve dependency for:這個問題

第一眼看這個錯的時候我以為我setting.gradle中沒有依賴appCommon,看完之後明明確實依賴了,而且這是一個老專案,在AS2.3版本的時候很正常,然後我就知道這又是一個坑,無奈的又去上了一把Internet,然後試過網上說的在buildTypes中加入preview節點,然而並沒有什麼卵用,查了半天還是沒有找到解決的方法,後來看著這段報錯資訊的時候,我看到了signingConfigs,我想到gradle中好像有這麼個節點,抱著試一試的態度我刪了那個節點,然後,臥槽臥槽臥槽,可以成功編譯了,這是不是有一種躺著過坑的趕腳。如果有其他更好的解決方法,歡迎私信我,有償給發紅包

解決方案: 把專案中的signingConfigs節點刪除掉就好了,如果你擔心多渠道打包的事情,那麼就用打包工具吧。


3、app:transformDexArchiveWithExterLibsDexMergeForDebug

app:transformDexArchiveWithExterLibsDexMergeForDebug

解決方案:將電腦中的.gradle目錄刪除掉(清除掉gradle快取)重新build


4、gradle打包,自定義apk名稱程式碼報錯(Cannot set the value of read-only property 'outputFile' )

Error:(56, 0) 
  Cannot set the value of read-only property 'outputFile' for
  ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=debug, filters=[]}} 
  of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.
複製程式碼

解決方案: 修改檔名程式碼請這樣寫

android.applicationVariants.all { variant ->
    variant.outputs.all {
         outputFileName = "xinlebao_${defaultConfig.versionName}_${releaseTime()}.apk"
    }
}
複製程式碼

5、AAPT2 編譯報錯 AAPT2 error

Error:java.util.concurrent.ExecutionException: 
  com.android.tools.aapt2.Aapt2Exception: 
  AAPT2 error: check logs for details
複製程式碼

**解決方案:**在gradle.properties中關閉APPT2 編譯,加上下面這行程式碼就好了:

android.enableAapt2=false

注:如果是eclipse轉到as上的專案,可能沒有gradle.properties檔案,請在專案根目錄中手動建立。


6、apt外掛問題

Error:Cannot choose between the following configurations of project :mylibrary:)
Error:Cannot choose between the following configurations of project :mylibrary:
- debugApiElements
- debugRuntimeElements
- releaseApiElements
- releaseRuntimeElements
 All of them match the consumer attributes:
複製程式碼

解決方案:

  • 1.在project的build.gradle中刪除 classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
  • 2.在module的build.gradle中刪除 apply plugin: 'android-apt'
  • 3.將module的build.gradle檔案中的dependency的apt 'com.jakewharton:butterknife-compiler:8.1.0' 改為 annotationProcessor 'com.jakewharton:butterknife-compiler:8.1.0'

本文轉載於 Android Studio3.0更新之路(遇坑必入)


相關閱讀

有關Android Studio的2.X的填坑指南(本人全面總結),歡迎點選我的github,地址為: https://github.com/AweiLoveAndroid/The-pit-of-the-Android-Studio,主要包括以下內容:

  1. Android Studio遇到的那些坑
  2. Android Studio常用設定和快捷鍵
  3. Android Studio常用模板用法和自定義模板
  4. Android Studio好用的外掛
  5. Android Studio和gradle版本對照
  6. Android Studio被忽視的小技巧.md
  7. Android支援庫詳解
  8. Android註解庫的使用

相關文章