【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

时间:2022-04-06 11:52:22

版权声明:本文为HaiyuKing原创文章,转载请注明出处!

前言

Android Studio 3.0的新功能

https://mp.weixin.qq.com/s/2XmVG4mKEDX6-bvZ0vvmcw

升级前的本地环境

Android studio2.2.2

如何查看

Help——About

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

Gradle 2.14.1(后来导入新项目的时候也下载了3.3版本)

如何查看

File——Project Structure——Project

自己的开发环境新建的项目:

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

别人的项目:

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

体现在项目中

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

sdk tools 26.0.1

如何查看

File——Settings——Appearance&Behavior——System Settings——Android SDK——SDK Tools

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

体现在项目中

暂时不知

sdk build tools 25.0.3

如何查看

File——Settings——Appearance&Behavior——System Settings——Android SDK——SDK Tools

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

体现在项目中

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

platform-tools 25.0.5

如何查看

File——Settings——Appearance&Behavior——System Settings——Android SDK——SDK Tools

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

体现在项目中

暂时不知

前期准备

下载IDE和SDK

http://www.wanandroid.com/tools/ide

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

因为本地电脑中存在旧版本Android Studio,也就已经存在SDK,则不需要下载sdk-tools。

下载gradle的最新版本

官网地址:https://gradle.org/

下载地址:https://gradle.org/releases/

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

如果不需要手动更新gradle版本,则不需要下载。可以通过Android Studio下载安装最新版本(需要*)

备份旧版本的gradle【对于旧版本还是使用2.14.1的情况,这个步骤有点儿用处】

Android Studio安装目录/gradle

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

将gradle-2.14.1和gradle-3.3压缩然后进行备份。将来安装完AS3.0之后再复制回来。

因为旧项目的gradle home指向的还是旧的数据:

如何查看

File—Settings—Bundle,Execution,Deployment

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

旧版本的AS最后一次关闭时停留的项目是一个简单的项目

可以是旧版本的AS新建的一个空项目,这样的目的是减少升级后碰到的坑。等升级成功后再分别打开旧项目进行填坑。

升级步骤

AS升级到3.0

双击下载的AS的IDE安装包进行安装。

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

此处会完全删除Android studio的安装目录。

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

此处需要修改Android Studio安装路径。选中Android/Android Studio文本并复制,点击“Browse”选择安装目录,然后粘贴到选中的目录后面。效果如下:

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

打开后会弹出下面的提示

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

保留之前的旧版本AS的配置。

如果之前设置过AS密码,则需要输入正确的密码【这个密码主要用于打包时的二次确认】:

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

等待编译完成。就会提示一些必要的操作。

提示修改项目中的gradle plugin和gradle的版本号

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

点击Update,等待一段时间后,提示如下的信息【升级SDK Bundle Tools(如果已经升级到26以上的话,不会出现这个提示)

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

点击finish后,编译一段时间后,提示修改buildToolsVersion版本号

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

按照提示,点击update Bundle Tools Version and Sync project

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

至此,AS升级到3.0 了。

升级AS3.0后新建一个项目

按照提示新建项目,创建项目后出现下面的提示【安装Android-26版本的platform

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

点击“Install missing platform(s) and sync project”

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

至此,Android studio3.0环境就可以正常新建项目了。

关闭整个Android Studio并复制回去gradle旧版本【如果想要旧项目正常运行,在不更新项目的Gradle版本的情况下】

将之前备份的gradle2.14.1和gradle3.3解压并复制到Android Studio/gradle目录中

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

注意,这样操作后对于修改了gradle plugin和gradle版本号的旧项目存在下面的问题

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

解决方案:

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

其实,保证项目gradle正常运行的是下面路径下是否存在项目中的gradle版本【这个路径下的每一个版本的文件夹,都代表下载安装的gradle版本】:

我想,可能Android Studio安装目录/gradle目录中存在gradle版本文件夹,可以实现快速安装,不用下载安装。

C:\Users\Administrator\.gradle\wrapper\dists

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

升级AS3.0之后打开旧项目的常规操作

不升级Gradle plugin和gradle版本号(不建议)

当AS升级到3.0之后,Gradle Plugin和Gradle不升级也是可以继续使用的,但很多新的特性如:Java8支持、新的依赖匹配机制、AAPT2等新功能都无法正常使用~ 所以长期看来,最后还是得升级的。

如果不想升级的话,打开旧项目时选择不更新即可。

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

Gradle Plugin版本升级到3.0.0及以上(略过)

方式一:安装AS3.0的IDE的时候自动安装了。

修改项目的Grade bundle版本号

一、对于升级时打开的项目,会自动更改。

二、对于升级到AS3.0后新打开的项目则需要手动修改。

更改项目下的build.grade文件中的Grade bundle版本与当前AS版本保持一致,并且在repositories里面添加google()

参考AS3.0新建的项目的bundle.gradle文件

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

    repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0' // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
} allprojects {
repositories {
google()
jcenter()
}
} task clean(type: Delete) {
delete rootProject.buildDir
}

Gradle版本升级4.1及以上(略过)

方式一:安装AS3.0的时候自动下载安装。

方式二:可以离线下载,把下载好的zip包解压后放在Android studio安装目录的gradle文件夹下。【特殊情况下使用,比如手动升级Gradle版本】

修改项目的gradle版本号

一、对于升级时打开的项目,会弹出一个提示框,自动修改。

二、对于升级到AS3.0后新打开的项目则需要手动修改。

修改gradle/ wrapper/gradle-wrapper.properties文件的gradle版本号

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

改为:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

SDK bundle tools需要升级到26或更高的版本(略过)

compilesdkversion最好升级到26或更高的版本,以免grade编译出错。

方式一:安装AS3.0的时候按照提示下载安装。

方式二:手动下载安装

File——Settings——Appearance&Behavior——System Settings——Android SDK——SDK Tools

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

选择其中一个下载安装。比如26.0.2

修改项目的buildToolsVersion版本号,可以顺便更换引用依赖的方式

更改项目app或者其他module下build.grade文件中的sdkbundle版本号

android {
compileSdkVersion 26
buildToolsVersion '26.0.2'
...
}

参考AS3.0新建的项目的app目录中的bundle.gradle文件

apply plugin: 'com.android.application'

android {
compileSdkVersion 26
defaultConfig {
applicationId "com.why.project.astestdemo"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
} dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

更改gradle home(非必须但建议)

注意:对于AS安装目录的gradle文件夹中没有gradle-2.14.1的情况不会出现该提示。

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

碰到的问题

Error:(2) Error: "app_name" is not translated in "ar" (Arabic), "en" (English), "es" (Spanish), "fr" (French), "ru" (Russian) [MissingTranslation]

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

Error:(2) Error: "app_name" is not translated in "ar" (Arabic), "en" (English), "es" (Spanish), "fr" (French), "ru" (Russian) [MissingTranslation]
Error:Execution failed for task ':app:lintVitalRelease'.
> Lint found fatal errors while assembling a release target.
To proceed, either fix the issues identified by lint, or modify your build script as follows:
...
android {
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
}
...

解决方案:

在项目的APP中的bundle.gradle文件中添加以下代码,然后重新编译下

apply plugin: 'com.android.application'

android {
compileSdkVersion 26
buildToolsVersion '26.0.2'
defaultConfig {
applicationId "com.why.project.changelanguagedemo"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
} dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

Error:Unable to load class 'org.gradle.api.internal.component.Usage'.

【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路

Error:Unable to load class 'org.gradle.api.internal.component.Usage'.
Possible causes for this unexpected error include:<ul><li>Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
<a href="syncProject">Re-download dependencies and sync project (requires network)</a></li><li>The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
<a href="stopGradleDaemons">Stop Gradle build processes (requires restart)</a></li><li>Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.</li></ul>In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

解决方案:

将项目根目录的 build.gradle 中的classpath 'com.novoda:bintray-release:0.3.4'修改为classpath 'com.novoda:bintray-release:0.5.0'

buildscript {

dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
//解决Plugin with id 'com.novoda.bintray-release' not found.
classpath 'com.novoda:bintray-release:0.5.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

参考资料

玩Android

Android studio开发

Android Studio 3.0正式版填坑之路

Android Studio3.0更新之路(遇坑必入)

Android Studio3.0新特性及安装详解

Android Studio3下多渠道打包遇到的坑

升级到AndroidStudio3.0指南

Android Studio 3.0及Gradle Plugin 3.0升级注意事项

老项目迁移AndroidStudio3.0带你踩完所有坑~

Android Studio 3.0升级--Unable to load class ‘org.gradle.api.internal.component.Usage’.

AndroidStudio - 手动更新gradle及关联项目详解