1.Error:Could not get unknown property 'apkVariantData' for object of type com.android.build.gradle.internal.api.ApplicationVariantImpl.
答:这个是因为Tinker中用到了apkVariantData属性,我们可以将tiner的gradle去除掉。上面是发现tinker有问题,另外发现GrowingIO也有这个问题,如果用的是gradle plugin3.0.0的话也需要去掉,如果还有童鞋有补充的,欢迎留言。
2.如果你的项目用到了,类似releaseCompile或者debugCompile的情况,根据配置来进行编译,会报如下的错误
Error:Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve project :library.
Error:Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve project :library.
可以用下面的语句来进行替换
dependencies {
implementation project(':library')
// You can, however, keep using variant-specific configurations when
// targeting external dependencies. The following line adds 'app-magic'
// as a dependency to only the "debug" version of your module.
debugImplementation 'com.example.android:app-magic:12.3'
}
3.Could not resolve com.android.support:multidex:1.0.2."
答:在项目录根目录下面的build.gradle文件增加:
buildscript {
repositories {
......
if (GRADLE_PLUGIN_VERSION_NEWER == "true")
google()
}
}
allprojects {
repositories {
maven {
url 'https://maven.google.com'
}
}
}
4.找不到outputFile属性
Error:(37, 1) A problem occurred configuring project ':app'.
> 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.
答:each改成all,而且那个fileName就是文件名,不需要路径,因为在3.0的gradle插件,output.OutputFile是只读属性,所以修改apk打包的文件名,需要用outputFileName.
5.目前我的方案是在gradle.properties中增加GRADLE_PLUGIN_VERSION_NEWER=true的配置属性,gradle插件的是否是3.0.0版本,是为true,不是为false,其他地方在配置的时候增加这个判断,如果是true,就用最新的配置,false就用老的配置。
如果大家有在升级3.0的过程,有遇到别的问题,欢迎留言交流,谢谢。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。