android Studio3.0 過坑

Android studio3.0 正式版25號(hào)發(fā)布狸驳,剛好項(xiàng)目上個(gè)版本更新完行疏,然后 花了兩天時(shí)間更新成功(實(shí)際一天不到柠逞,中間各種評審劃水過時(shí)間)。成功跑完之后璧亮,在這里總結(jié)下遇到的問題萧诫。

1.升級

如果之前沒有出現(xiàn)過升級 3.0正版提示的在打開 studio的時(shí)候會(huì)收到提示然后就是直接等待下載升級斥难,如果沒有提示

微信截圖_20171108101559.png

更新之后會(huì)提示升級 build tool 到 26.0.2 照做就行

2.移除apt

因?yàn)樵?.0開始 使用annotationProcessor代替apt。不可再使用apt帘饶,否則會(huì)編譯報(bào)錯(cuò)哑诊。

Error:android-apt plugin is incompatible with the Android Gradle plugin. Please use 'annotationProcessor' configuration instead.
去掉

//主 gradle
   ` apply plugin: 'com.neenbedankt.android-apt'
//項(xiàng)目 gradle
  classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'


apt 'com.google.dagger:dagger-compiler:2.10-rc2'
改成
annotationProcessor 'com.google.dagger:dagger-compiler:2.10-rc2'

3.修改輸出apk的文件名導(dǎo)致的異常

1868359-7833eb3e63cf5361.png

點(diǎn)擊Open File定位到應(yīng)用級別的build.gradle文件中.谷歌一下后發(fā)現(xiàn)原來以前常用的apk文件名稱修改腳本在3.0中會(huì)報(bào)錯(cuò)

            // 自定義輸出配置
            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {
                        // 輸出apk名稱為xxx_2_xxx.apk
                        def fileName = "dqxt_${defaultConfig.versionCode}_${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk"
                        output.outputFile = new File(outputFile.parent, fileName)
                    }

通過官方的引導(dǎo)可以改成這樣

 //AS3.0版本 自定義輸出配置
     applicationVariants.all { variant ->
                variant.outputs.all {
                    outputFileName = "xxx_${defaultConfig.versionCode}_${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk"
                }
            }

4.butterknife問題

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)

編譯的時(shí)候出現(xiàn)這種問題,在stackoverflow上搜了下發(fā)現(xiàn)有很多相同問題點(diǎn)了第一個(gè)進(jìn)去及刻,發(fā)現(xiàn)有兩種方法
降級或者升級搭儒,降級是把 butterknife-gradle-plugin 降級到 8.4.0,升級是升到 9.0 snapshot提茁,因?yàn)樵瓉?沒有升過9.0 直接選擇降級到8.4.0

//主 gradle
   classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'
//項(xiàng)目 gradle
//視圖綁定 butterknife
   implementation "com.jakewharton:butterknife:$rootProject.butterknifeVersion"
   annotationProcessor "com.jakewharton:butterknife-compiler:$rootProject.butterknifeVersion"

5.移除retrolambda

Android studio 3.0 加入了Java1.8淹禾,這使得 原來的 retrolamdba的插件會(huì)產(chǎn)生沖突 所以把原來的retrolambda插件移除

//主 gradle
  apply plugin: 'me.tatarka.retrolambda'
//項(xiàng)目 gradle
  classpath 'me.tatarka:gradle-retrolambda:3.7.0'

6.multidex1.0.2問題

因?yàn)間oogle把自家的依賴收回到自家的CDN服務(wù)器 所以原來在項(xiàng)目 build.gradle中的jcenter()就能獲取的依賴現(xiàn)在必須添加 google()自己的依賴了。

    repositories {
        jcenter()
        mavenCentral()
        google()
    }

allprojects {
    repositories {
        jcenter()
        mavenCentral()
        google()
        maven { url "https://jitpack.io" }
        maven { url 'https://maven.google.com' }
    }
}

在stackoverflow上看到可能會(huì) GFW 所以 把 google() 和maven { url 'https://maven.google.com' }都添加上了

7.AAPT2編譯異常

image.png

解決方案

1.使用低版本的support包,把項(xiàng)目所有support包的版本配置到25.2.0或者其它較低的版本
2.配置gradle.properties中關(guān)閉AAPT2編譯,說人話就是在其中增加android.enableAapt2=false配置,再次編譯問題解決(推薦),例如
android.enableAapt2=false

可能會(huì)出現(xiàn)找不到 gradle.properties茴扁,可以把別的項(xiàng)目的gradle.properties復(fù)制過來铃岔,粘貼到項(xiàng)目根目錄。

8.flaovr配置問題

Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html

在google 的官方文檔中給出的方法是

android {
    defaultConfig {
        flavorDimensions "tier","minApi"
    }
}

productFlavors {
     free {
      // Assigns this product flavor to the "tier" flavor dimension. Specifying
      // this property is optional if you are using only one dimension.
      dimension "tier"
      ...
    }

    paid {
      dimension "tier"
      ...
    }

    minApi23 {
        dimension "minApi"
        ...
    }

    minApi18 {
        dimension "minApi"
        ...
    }
}

9.更新3.0 后 compile過時(shí)使用新的 implementation和api

后兩者和 compile 一樣都是依賴峭火,其中 api和 compile 可以說是一模一樣 只不過改了個(gè)名字毁习,而implementation 的特點(diǎn)就是,對于使用了該命令編譯的依賴卖丸,對該項(xiàng)目有依賴的項(xiàng)目將無法訪問到使用該命令編譯的依賴中的任何程序纺且,也就是將該依賴隱藏在內(nèi)部,而不對外部公開稍浆。

在Google IO 相關(guān)話題的中提到了一個(gè)建議载碌,就是依賴首先應(yīng)該設(shè)置為implementation的,如果沒有錯(cuò)衅枫,那就用implementation嫁艇,如果有錯(cuò),那么使用api指令弦撩。使用implementation會(huì)使編譯速度有所增快步咪。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市益楼,隨后出現(xiàn)的幾起案子猾漫,更是在濱河造成了極大的恐慌,老刑警劉巖感凤,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悯周,死亡現(xiàn)場離奇詭異,居然都是意外死亡俊扭,警方通過查閱死者的電腦和手機(jī)队橙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來萨惑,“玉大人捐康,你說我怎么就攤上這事∮拱” “怎么了解总?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長姐仅。 經(jīng)常有香客問我花枫,道長,這世上最難降的妖魔是什么掏膏? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任劳翰,我火速辦了婚禮,結(jié)果婚禮上馒疹,老公的妹妹穿的比我還像新娘佳簸。我一直安慰自己,他們只是感情好颖变,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布生均。 她就那樣靜靜地躺著,像睡著了一般腥刹。 火紅的嫁衣襯著肌膚如雪马胧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天衔峰,我揣著相機(jī)與錄音佩脊,去河邊找鬼。 笑死垫卤,一個(gè)胖子當(dāng)著我的面吹牛邻吞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播葫男,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼抱冷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了梢褐?” 一聲冷哼從身側(cè)響起旺遮,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎盈咳,沒想到半個(gè)月后耿眉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鱼响,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年鸣剪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡筐骇,死狀恐怖债鸡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情铛纬,我是刑警寧澤厌均,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站告唆,受9級特大地震影響棺弊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜擒悬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一模她、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧懂牧,春花似錦侈净、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拼弃,卻和暖如春夏伊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背吻氧。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工溺忧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盯孙。 一個(gè)月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓鲁森,卻偏偏與公主長得像,于是被迫代替她去往敵國和親振惰。 傳聞我的和親對象是個(gè)殘疾皇子歌溉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容