浅析Android Studio 3.0升级各种坑(推荐)

  

点击检查更新增量更新:

  

浅析Android Studio 3.0升级各种坑(推荐)

  

下载完成,会提示更新您将Gradle更新至4.1:

  

浅析Android Studio 3.0升级各种坑(推荐)

  

这里建议您对老项目先暂时点击不提醒我alt="浅析Android Studio 3.0升级各种坑(推荐)">

  

重启Android工作室。

  

gradle目录:

  

Mac系统默认:/用户/(用户名)/.gradle

  

Windows系统默认:C: \用户(用户名).gradle

  

  

首先我们新建项目,看看发生了哪些变化。

  

<强> 1,app/build.gradle

  

浅析Android Studio 3.0升级各种坑(推荐)

  

buildToolsVersion:这里没有构建工具的版本buildToolsVersion属性了,Android Studio 3.0默认情况下,插件会自动为您使用Android的插件版本使用最低要求的构建工具版本;

  

实现:由以前的编译改成实现了。老版本的构建关键字编译被废弃了,而是改成了这两个:api:同编译作用一样,即认为本模块将会泄露其依赖的模块的内容;

  

实现:本模块不会通过自身的接口向外部暴露其依赖模块的内容。

  

<强> 2项目build.gradle

  

浅析Android Studio 3.0升级各种坑(推荐)

  

谷歌():Android Studio 3.0现在默认使用谷歌的Maven存储库,而不是依赖于Android SDK经理来获取Android支持库,谷歌玩服务,重火力点和其他依赖项的更新。

  

构建。gradle:指定的是gradle插件的版本,由之前的2.3.3改成了3.0.0。

  

<强> 3,gradle-wrapper.properties

  

gradle-wrapper。属性中配置的是的Gradle的版本。

  

浅析Android Studio 3.0升级各种坑(推荐)

  

可以对老项目就以上几点进行修改。

  

  

如果您在自由里使用了butterknife,会遇到以下错误:

  

浅析Android Studio 3.0升级各种坑(推荐)”> <br/>
  </p>
  <p>网上说将应用插件:com.jakewharton。butterknife”注掉,是能解决问题,但是对于自由里使用了butterknife依旧报R2找不到,还得放开应用插件:“com.jakewharton。butterknife’,最后我只能退而求其次,将构建。gradle中3.0.0改成之前的2.3.3,解决。</p>
  <p> </p>
  <p>打包时,要是自定义输出APK文件名可以这样做:</p>
  
  <pre类=   buildTypes {   释放{   minifyEnabledfalse   proguardFiles getDefaultProguardFile(“proguard-android.txt”)、“proguard-rules.pro”   applicationVariants。所有{变体→   如果(variant.buildType.name==笆头拧?{   variant.outputs。每个{输出→   def outputFile=output.outputFile   如果(outputFile !=零,,outputFile.name.endsWith (. apk)) {   def文件=" Sample_v $ {defaultConfig.versionName} _ $ {releaseTime ()} _ {variant.flavorName} . apk美元”   输出。(outputFile outputFile=新文件。家长,文件名)   }   }   }   }   }   }      

使用Gradle插件3.0.0时报错:

        不能设置只读属性的值的outputFile ApkVariantOutputImpl_Decorated {apkData=https://www.yisu.com/zixun/Main {type=主要fullName=释放,过滤器=[]}}com.android.build.gradle.internal.api.ApkVariantOutputImpl类型。打开文件      

需要修改each()和outputFile()方法为所有()和outputFileName:

        buildTypes {   释放{   minifyEnabledfalse   proguardFiles getDefaultProguardFile(“proguard-android.txt”)、“proguard-rules.pro”   applicationVariants。所有{变体→   如果(variant.buildType.name==笆头拧?{   variant.outputs。所有{输出→   def outputFile=output.outputFile   如果(outputFile !=零,,outputFile.name.endsWith (. apk)) {   def文件=" Sample_v $ {defaultConfig.versionName} _ $ {releaseTime ()} _ {variant.flavorName} . apk美元”   输出。(outputFile outputFileName=新文件。家长,文件名)   }   }   }   }   }   }      

  

构建。gradle和gradle-wrapper。属性区,别了解更多:https://developer.android.com/studio/releases/gradle-plugin.html

浅析Android Studio 3.0升级各种坑(推荐)