Android studio 升级到3.0时项目遇到的问题
2017-11-07 12:33
513 查看
第一个问题:
在项目的build.gradle文件里面
Cannot set the value of read-only property ‘outputFile’
Error:(56, 0) Cannot set the value of read-only property ‘outputFile’ for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=debug, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.
之前的代码如下
applicationVariants.all { variant ->
variant.outputs.each { output ->
if (output.outputFile != null && output.outputFile.name.endsWith('.apk')
&& 'release'.equals(variant.buildType.name)) {
def apkFile = new File(
output.outputFile.getParent(),
"zh_${variant.flavorName}_v${variant.versionName}_${buildTime()}.apk")
output.outputFile = apkFile
}
}
讲之前的代码注释修改成如下即可,貌似是命名改变了。
applicationVariants.all { variant ->
/* variant.outputs.each { output ->
if (output.outputFile != null && output.outputFile.name.endsWith('.apk')
&& 'release'.equals(variant.buildType.name)) {
def apkFile = new File(
output.outputFile.getParent(),
"zhemituan_${variant.flavorName}_v${variant.versionName}_${buildTime()}.apk")
output.outputFile = apkFile
}
}*/
variant.outputs.all {
outputFileName ="zh_${defaultConfig.versionName}"+"_${variant.productFlavors[0].name}.apk"
}
}
PS:另外就是记得在defaultConfig 下方加上这么一句话
flavorDimensions"versionCode"
第二个问题是:
compile ‘com.android.support:multidex:1.0.1’
若项目里面添加了此依赖,需要您将项目的build.gradle文件进行修改,也就是配置仓库的地方
allprojects {
repositories {
jcenter()
maven { url"https://jitpack.io"}
google()// 加入此行代码---
}
}
同时在module下的build.gradle处将之前的multidex的版本号升级到1.0.2
第三个问题:
Error:java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ‘:app:processDebugResources’.
Failed to execute aapt
Information:BUILD FAILED in 8s
这个问题我也是看了别人的博客才知道如何解决;
在项目的gradle.properties文件中底部加入
android.enableAapt2=false
第四个问题:
Annotation processors must be explicitly declared now. The following dependenciesonthecompile classpath are foundtocontainannotation processor. Please add themtotheannotationProcessor configuration. - butterknife-7.0.1.jar Alternatively,setandroid.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath
=truetocontinuewithprevious behavior. Notethatthis optionisdeprecatedandwill be removedinthefuture.
使用了黄油刀出现的问题,compile'com.jakewharton:butterknife:7.0.1'
在module下的build.gradle中添加如下配置即可
android {
...defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath = true }
}
}
}
第五个问题:
升级gradle了,之前项目用的是25.0.0的,导致虽然没有报错,但是有warning
,所以需要将项目里面所有使用到的改成26+
第六个问题:
找不到这个类support.v4.animation.AnimatorCompatHelper;
这个应该不是升级导致的,可能是因为项目中依赖导致的,姑且暂时记录在这里,因为我是升级之后出现了这个问题,具体解决办法就是
在build.gradle最后添加,代码如下:
configurations.all {
resolutionStrategy.eachDependency {
DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '24.1.1'
}
}
}
}
PS:上述问题解决方案,基本上都是看了其他人写的文章才知道的,谢谢无私者的奉献。
在项目的build.gradle文件里面
Cannot set the value of read-only property ‘outputFile’
Error:(56, 0) Cannot set the value of read-only property ‘outputFile’ for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=debug, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.
之前的代码如下
applicationVariants.all { variant ->
variant.outputs.each { output ->
if (output.outputFile != null && output.outputFile.name.endsWith('.apk')
&& 'release'.equals(variant.buildType.name)) {
def apkFile = new File(
output.outputFile.getParent(),
"zh_${variant.flavorName}_v${variant.versionName}_${buildTime()}.apk")
output.outputFile = apkFile
}
}
讲之前的代码注释修改成如下即可,貌似是命名改变了。
applicationVariants.all { variant ->
/* variant.outputs.each { output ->
if (output.outputFile != null && output.outputFile.name.endsWith('.apk')
&& 'release'.equals(variant.buildType.name)) {
def apkFile = new File(
output.outputFile.getParent(),
"zhemituan_${variant.flavorName}_v${variant.versionName}_${buildTime()}.apk")
output.outputFile = apkFile
}
}*/
variant.outputs.all {
outputFileName ="zh_${defaultConfig.versionName}"+"_${variant.productFlavors[0].name}.apk"
}
}
PS:另外就是记得在defaultConfig 下方加上这么一句话
flavorDimensions"versionCode"
第二个问题是:
compile ‘com.android.support:multidex:1.0.1’
若项目里面添加了此依赖,需要您将项目的build.gradle文件进行修改,也就是配置仓库的地方
allprojects {
repositories {
jcenter()
maven { url"https://jitpack.io"}
google()// 加入此行代码---
}
}
同时在module下的build.gradle处将之前的multidex的版本号升级到1.0.2
第三个问题:
Error:java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ‘:app:processDebugResources’.
Failed to execute aapt
Information:BUILD FAILED in 8s
这个问题我也是看了别人的博客才知道如何解决;
在项目的gradle.properties文件中底部加入
android.enableAapt2=false
第四个问题:
Annotation processors must be explicitly declared now. The following dependenciesonthecompile classpath are foundtocontainannotation processor. Please add themtotheannotationProcessor configuration. - butterknife-7.0.1.jar Alternatively,setandroid.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath
=truetocontinuewithprevious behavior. Notethatthis optionisdeprecatedandwill be removedinthefuture.
使用了黄油刀出现的问题,compile'com.jakewharton:butterknife:7.0.1'
在module下的build.gradle中添加如下配置即可
android {
...defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath = true }
}
}
}
第五个问题:
升级gradle了,之前项目用的是25.0.0的,导致虽然没有报错,但是有warning
,所以需要将项目里面所有使用到的改成26+
第六个问题:
找不到这个类support.v4.animation.AnimatorCompatHelper;
这个应该不是升级导致的,可能是因为项目中依赖导致的,姑且暂时记录在这里,因为我是升级之后出现了这个问题,具体解决办法就是
在build.gradle最后添加,代码如下:
configurations.all {
resolutionStrategy.eachDependency {
DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '24.1.1'
}
}
}
}
PS:上述问题解决方案,基本上都是看了其他人写的文章才知道的,谢谢无私者的奉献。
相关文章推荐
- android studio 3.0 升级 项目遇到的问题及更改思路(问题小结)
- android studio 3.0 升级 项目遇到的问题更改
- [置顶] Android Studio升级至3.0所遇到的问题
- Android studio 3.0 Beta 2 导入eclipse项目遇到的问题
- 更新到Android Studio 3.0项目迁移遇到的问题解决方案
- 升级Android Studio 3.0 遇到的问题
- Android Studio 2.3.*升级到3.0遇到的问题和解决版本
- Android studio升级3.0.1遇到的坑及Android Studio 3.0 新功能解析和旧项目适配
- android studio 3.0 升级问题,遇到的坑;
- Android studio 3.0上进行多渠道打包遇到的问题
- Android Studio 项目中加入Butterknife注入框架遇到的问题
- 解决android studio 3.0 加载项目过慢问题--maven仓库选择
- HGE项目升级时遇到的问题及解决方式记录
- android studio 升级常遇到的问题以及解决方法
- 使用Android Studio 3.0以及新版Gradle转移旧版项目可能遇到的几个坑
- 【Studio】Android Studio导入项目时的遇到问题(Re-download dependencies and sync project (requires network))
- Qt4项目升级到QT5遇到的问题与解决办法
- android studio 导入项目遇到的问题
- android studio 导入项目(遇到到 的问题)
- Android Studio 升级到2.3版本后Run项目不能自动启动APP的问题