时间:2021-05-19
点击 Check for Updates 增量更新:
下载完成,会提示更新 您将 Gradle 更新至 4.1:
这里建议您对老项目先暂时点击 Don't remind me on this project,以防有坑。当然我不入地狱谁入地狱,我点 Update,于是问题来了,一直处于下载中,不过,莫担心,我下载好了,公众号聊天界面回复「 gradle-4.1-all 」,下载 gradle-4.1-all.zip 文件,放到:
重启 Android Studio。
gradle 目录:
Mac系统默认:/Users/(用户名)/.gradle
Windows系统默认:C:\Users(用户名).gradle
修改旧项目
首先我们新建项目,看看发生了哪些变化。
1、app/build.gradle
buildToolsVersion:这里没有构建工具的版本 buildToolsVersion 属性了,Android Studio 3.0 默认情况下,插件会自动为您使用的 Android 插件版本使用最低要求的构建工具版本;
implementation:由以前的 compile 改成了 implementation。老版本的构建关键字 compile 被废弃了,而是改成了这两个:api:同 compile 作用一样,即认为本 module 将会泄露其依赖的 module 的内容;
implementation:本 module 不会通过自身的接口向外部暴露其依赖 module 的内容。
2、项目 build.gradle
google():Android Studio 3.0 现在默认使用 Google 的 Maven 存储库,而不是依赖于 Android SDK Manager 来获取 Android 支持库,Google Play 服务,Firebase 和其他依赖项的更新;
build.gradle:指定的是Gradle插件的版本,由之前的 2.3.3 改成了 3.0.0。
3、gradle-wrapper.properties
gradle-wrapper.properties 中配置的是的 Gradle 的版本。
可以对老项目就以上几点进行修改。
butterknife
如果您在 lib 里使用了 butterknife,会遇到以下错误:
网上说将 apply plugin: ‘com.jakewharton.butterknife' 注掉,是能解决问题,但是对于 lib 里使用了 butterknife 依旧报 R2 找不到,还得放开 apply plugin: ‘com.jakewharton.butterknife',最后我只能退而求其次,将 build.gradle 中 3.0.0 改成之前的 2.3.3,解决。
打包自定义 APK 文件名
打包时,要是自定义输出 APK 文件名可以这样做:
buildTypes { release { minifyEnabledfalse proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' applicationVariants.all { variant -> if (variant.buildType.name == 'release') { variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile !=null && outputFile.name.endsWith('.apk')) { def fileName = "Sample_v${defaultConfig.versionName}_${releaseTime()}_${variant.flavorName}.apk" output.outputFile = new File(outputFile.parent, fileName) } } } } }}使用 Gradle Plugin 3.0.0 时报错:
Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=release, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl. Open File需要修改 each() 和 outputFile() 方法为 all() 和 outputFileName:
buildTypes { release { minifyEnabledfalse proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' applicationVariants.all { variant -> if (variant.buildType.name == 'release') { variant.outputs.all { output -> def outputFile = output.outputFile if (outputFile !=null && outputFile.name.endsWith('.apk')) { def fileName = "Sample_v${defaultConfig.versionName}_${releaseTime()}_${variant.flavorName}.apk" output.outputFileName = new File(outputFile.parent, fileName) } } } } }}补充
build.gradle 和 gradle-wrapper.properties 区别,了解更多: https://developer.android.com/studio/releases/gradle-plugin.html
最后
目前遇到这些坑,欢迎一起吐槽您在升级开发遇到的坑,这次升级又折腾了很久。另外如果需要gradle-4.1-all.zip 文件,公众号「吴小龙同学」聊天界面回复「 gradle-4.1-all 」获取。
PS:下面给大家补充介绍android studio升级到3.0的各种坑。
项目的build.gradle(不是module):
解决方案:
关掉AAPT2即可
在Project/gradle.properties中添加 android.enableAapt2=false
总结
以上所述是小编给大家介绍的浅析Android Studio 3.0 升级各种坑(推荐),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
推荐阅读:浅析Android手机卫士自定义控件的属性浅析Android手机卫士关闭自动更新设置向导页面,通过SharedPreferences来判断是否已经设置
下载地址如下:https://developer.android.com/sdk/installing/studio.html很显然的IntelliJIDEA的
本文记录刚接触Android开发搭建环境后新建工程各种可能的报错,并亲身经历漫长的解决过程(╥╯^╰╥),寻找各种偏方,避免大家采坑,希望能帮助到大家。出错一:
前提条件介绍1.android-studio-3.6.1死丢丢配置了dart和flutter插件在3.5.3时成功运行过flutter工程2.flutter版本
1、首先下载Androidstudio安装包,可以从http://www.android-studio.org/下载最新版本,这里采用3.5.2版本进行演示,安