记录了将公司大项目,完整从Android Studio 2.3迁移到 Android Studio 3.0的全部过程。
按照步骤迁移,遇到的所有报错和解决办法都在后面。
Android项目从2.3迁移到3.0、3.1
版本:2018/8/14-1(1456)
- Android项目从2.3迁移到3.0、3.1
- 迁移到AS3.0
- 0-下载Android Studio 3.0
- 1-gradle下载4.1
- 2-Build tools 下载 26.0.2
- 3-SDK API26(android 8.0)
- 4-更改build.gradle里面的设置
- 5-gradle报错处理
- 1-gradle打包,自定义apk名称
- 2-Build Tools需要使用26.0.2或者更高版本
- 3-维度统一
- 4-Unable to resolve dependency
- 5-AAPT2 编译报错 AAPT2 error
- 6-Error:Removing unused resources requires unused code
- 7-Error:Unable to resolve dependency for ‘:mobile:iptvclient@debug/compileClasspath’-multidex:1.0.0
- 8-….省略…Error while executing process …省略…/aapt.exe with arguments…
- 9-error: style attribute ‘@android:attr/windowEnterAnimation’ not found.
- 10-Error:(20, 36) 错误: 找不到符号 符号: 变量 mAvailIndices 位置: 类型为FragmentManagerImpl的变量 fragmentManagerImpl
- 6-添加google()
- 7-项目转为kotlin项目
- 8-其他
- 迁移到AS3.1
- 1-下载AS3.1
- 2-下载Gradle4.4
- 3-下载Build Tools 27.0.3
- 4-Gradle异常
- The SourceSet ‘instrumentTest’ is not recognized by the Android Gradle Plugin. Perhaps you misspelled something?
- All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html
- Unable to resolve dependency for ‘:xxx/compileClasspath’: Could not resolve project :xxx.
- 9-参考资料
- 迁移到AS3.0
迁移到AS3.0
0-下载Android Studio 3.0
官网(可以直接下载):https://developer.android.google.cn/studio/index.html#downloads
- 需要在网站中的”下载选项”中,选择
android-studio-ide-171.4443003-windows.zip
下载。
注意!下载无SDK的压缩包,而不是
exe
文件。因为通过解压缩的方式,可以让Android Studio 3.0和Android Studio 2.3共存。
- 本地解压缩zip压缩包,在as目录下的bin中studio64就是运行的exe文件,可以创建快捷方式放置于桌面。
1-gradle下载4.1
请去官网或搜索下载
gradle-wrapper.properties
-将gradle-2.10-all.zip
更改为gradle-4.1-all.zip
AS的settings中搜索
gradle
-在use local gradle
中设置本地gradle的路径,例如:D:/gradle-4.1-all/gradle-4.1
2-Build tools 下载 26.0.2
请去官网或搜索下载
将下载的
26.0.2
的tools文件夹添加到本地sdk目录中的build-tools内,例如“D:\android-sdk\build-tools”公司网络限制下的备选方法:经测试在as3.0里面的SDK manager可以直接更新,需要在settings->proxy->选择’auto-detect proxy’,之后就可以在
SDK Manager
中更新需要API/Build-Tools等。
3-SDK API26(android 8.0)
请去官网或搜索下载
将下载的
android-26
添加到本地SDK目录中的platforms目录下SDKManager中直接更新
4-更改build.gradle里面的设置
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
}
需要将2.3更改为3.0.1(as3的版本):
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
}
5-gradle报错处理
1-gradle打包,自定义apk名称
报错:
Error:(58, 0) Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=AHMobileReleaseUnsigned, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.
<a href="openFile:E:\Projects\AS3.0projects\v2.x\src\mobile\iptvclient\build.gradle">Open File</a>
原内容如下:
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
//这里修改apk文件名
def fileName = "${variant.productFlavors[0].name}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
处理办法(直接用下列代码替换):
android.applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.productFlavors[0].name}.apk"
}
}
${variant