欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

淺談AndroidStudio3.0的一些小變化

前言

目前成都創(chuàng)新互聯(lián)公司已為近千家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)頁空間、網(wǎng)站托管、服務器租用、企業(yè)網(wǎng)站設計、沙市網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

一大早還在北京擁擠的地鐵里,我的CTO閆哥在微信里給我發(fā)了一條信息:Android Studio 3.0發(fā)布了。

為什么會這么關(guān)注Android Studio 3.0 的版本發(fā)布呢?主要是因為公司即將開發(fā)的新app準備使用Kotlin語言,而Android Studio 3.0 已經(jīng)把Kotlin的語言支持內(nèi)置進去了,這樣就省去了很多的麻煩,如果你還沒接觸過Kotlin語言,可以去百度一下 他們的官網(wǎng),如果你現(xiàn)在使用的Java語言,那么你真是太幸運了,因為Kotlin對于你來說,將會非常簡單,例如像我這樣的,兩三天就可以幾乎應付大部分的開發(fā)了。

這里就不對Kotlin語言做過多的描述了,今天的重點,是我升級到Android Studio 3.0 以后的故事。

正文

來到公司打開電腦,升級Android Studio到3.0版本,編譯目前的工程。哎呀呀我擦擦,為什么報了好多的錯?別著急,我們慢慢解決這些問題。

淺談Android Studio 3.0 的一些小變化

Android Studio的自帶Gradle版本是4.1,插件版本是3.0.0,所以如果你使用的是老版本,就會出現(xiàn)一些小的兼容問題,我們看看報了哪些錯誤呢:

問題1

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

outputFile是只讀屬性,不可以對他進行修改

看一下我的gradle里面的代碼:

// 定義生成的apk的名稱
def apkName;

buildTypes {
 release {
  ...
  // 定義release版本生成的apk的名字
  apkName = "xxx" + VERSION_NAME + "_release.apk";
 }
 debug {
  ...
  // 定義debug版本生成的apk的名字
  apkName = "ugirls_" + VERSION_NAME + "_debug.apk";
 }
}

// 修改apk build的名字
android.applicationVariants.all { variant ->
 variant.outputs.each { output ->
  def outputFile = output.outputFile
  if (outputFile != null && outputFile.name.endsWith('.apk')) {
    //這里使用之前定義apk文件名稱
    output.outputFile = new File(outputFile.parent, apkName)
  }
 }
}

這段代碼的功能是修改Build命令生成的apk的名稱,因為outputFile變成只讀屬性,所以報錯。

修改后:

// 之前代碼保持不變
// 修改apk build的名字
android.applicationVariants.all { variant ->
 variant.outputs.all {
  if (outputFileName.endsWith('.apk')) {
   //這里使用之前定義apk文件名稱
   outputFileName = apkName
  }
 }
}

把each修改為all,然后通過outputFileName修改生成的apk的名稱。

如果你提示沒有找到all方法或者是未找到outputFileName,你可以先把這個功能注釋掉,等其他問題都解決了,再打開就可以解決這個問題了。

問題2

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

所有的flavor屬性應當屬于同一個命名空間

看著問題似乎有點深奧,其實就是需要我們?yōu)閒lavors設置一個版本,統(tǒng)一使用相同版本的flavors。

defaultConfig {
 targetSdkVersion:***
 minSdkVersion :***
 versionCode:***
 versionName :***
 //為flavor設置一個版本,命名是隨意的
 flavorDimensions "versionCode"
}

問題3

淺談Android Studio 3.0 的一些小變化

有些庫不能被正常引用,例如我使用的multidex,在上面的截圖中已經(jīng)提示我們?nèi)绾谓鉀Q這個問題

buildscript {
 repositories {
  ...
  // 添加google庫的依賴
  google()
 }
 dependencies {
  ...
 }
}

問題4

Error:(2638) error: style attribute '@android:attr/windowEnterAnimation' not found.

提示我們找不到@android:attr/windowEnterAnimation,因為已經(jīng)不支持@開頭使用android自帶的屬性,我們只要把@符號刪掉就可以了。

修改前:

<style name="ToastStyle" parent="android:Animation">
  <item name="@android:windowEnterAnimation">@anim/push_fade_in</item>
  <item name="@android:windowExitAnimation">@anim/push_fade_out</item>
</style>

修改后:

<style name="ToastStyle" parent="android:Animation">
  <item name="android:windowEnterAnimation">@anim/push_fade_in</item>
  <item name="android:windowExitAnimation">@anim/push_fade_out</item>
</style>

問題5

Error:Execution failed for task ':app:javaPreCompileAppDebug'.
Annotation processors must be explicitly declared now. The following dependencies on the compile classpath are found to contain annotation processor. Please add them to the annotationProcessor configuration.
- butterknife-6.1.0.jar (com.jakewharton:butterknife:6.1.0)
Alternatively, set android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true to continue with previous behavior. Note that this option is deprecated and will be removed in the future.
See https://developer.android.com/r/tools/annotation-processor-error-message.html for more details.

好多的錯誤日志啊,其實最關(guān)鍵的只有前兩行:

使用注解編譯庫,需要顯示的聲明,而我正在使用的butterknife是含有注解編譯功能的,但是并沒有聲明。

解決辦法:

android {

 defaultConfig {
 // 聲明需要使用注解功能
  javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true } }
  ...
 }
}

其他的變化

通過剛才的修改,我的工程已經(jīng)運行起來了,但是發(fā)現(xiàn)了Android Studio 3.0 的幾個小變化。

變化1

Warning:One of the plugins you are using supports Java 8 language features. To try the support built into the Android plugin, remove the following from your build.gradle:
apply plugin: 'me.tatarka.retrolambda'

從警告上看,希望我移除這個插件,于是我到官網(wǎng)上查看了一下信息:

If Android Studio detects that your project is using Jack, Retrolambda, or DexGuard, the IDE uses Java 8 support provided by those tools instead.

如果Android Studio發(fā)現(xiàn)你的工程中使用Jack ,Retrolambda 或DexGuard,編輯器會使用Java8支持,替換這個工具。
因為我使用me.tatarka.retrolambda第三方框架,所以就出現(xiàn)了這個,我們只要刪除相關(guān)的配置就可以了。

變化2

提示有更高版本你的第三方框架:

淺談Android Studio 3.0 的一些小變化

上面的截圖顯示,gson有更高的版本2.8.3,提示我升級gson。這就省去了我們?nèi)ithub上查看是否版本更新的時間,非常的方便。

總結(jié)

這就是我今天遇到的問題及解決方案,如果之前有更多問題再補充。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

網(wǎng)站欄目:淺談AndroidStudio3.0的一些小變化
轉(zhuǎn)載來源:http://aaarwkj.com/article38/gjipsp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站營銷靜態(tài)網(wǎng)站、網(wǎng)站策劃、搜索引擎優(yōu)化、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
日本人妻系列在线播放| 91精品大片免费在线观看| 久久久亚洲熟妇熟女一区二区| 91这里只有精品在线观看| 国产精品三级玖玖玖电影| 91久久精品国产免费一区| 日韩亚洲欧美另类精品| 欧美日韩另类国产综合| 久久av免费一区二区观看| 一区二区尤物区亚洲国产精品区| 欧美国产日韩在线播放| 日韩中文字幕专区在线| 国产亚洲精品福利视频| 欧美日韩国产一区在线| 久久裸体国语精品国产91| 欧美偷拍一区二区三区| 国产一区二区三区在线看片| av在线高清免费观看| 国产91精品在线观看| 久久久亚洲熟妇熟女一区二区| 丰满人妻熟妇乱精品视频| 国产精品亚洲av性色| 青青草免费在线视频蜜臀| 亚洲欧美日韩老汉影院| 日本a亚洲中文字幕永远| 亚洲av丰满熟妇在线观看| 午夜福利欧美日本视频| 漂亮人妻中文字幕av| 亚洲美女香蕉视频在线| 欧美精品欧美精品一区二区| 欧美精品一区二区久久不卡| 国产成人精品手机在线观看| 日韩精品一区二区三区欲色av| 欧美日本一道本一区二区三区| 日本中文有码在线观看| 中文字幕在线精品乱码麻豆| 国产精品国产三级国产专用| 精品视频在线观看传媒| 欧美日韩av在线一区二区| 久久亚洲中文字幕精品熟女| 男人的天堂av东京热一区|