gradle 从2.2.3升级到3.0.1遇到的问题总结

Android studio 升级到3.0.1后,致使低版本的gradle使用不了新的功能,例如Android Profile, 不得不进行升级。html

  • Update Build Tools version and sync project
buildToolsVersion ’25.0.3’  -> ’26.0.2’
这个根据gradle的连接结果,点击便可。复制代码
project里面的productFlavors和子模块的productFlavors不一致致使的。
修改使其彻底一致,而且都要添加 flavorDimensions "default"。
flavorDimensions "default"
productFlavors {
    A360 {

    }
 }复制代码
  • Add Google Maven repository and sync project
这个根据gradle的连接结果,点击便可。复制代码
  • Error:Unable to resolve dependency for ':app@A360Debug/compileClasspath': Could not resolve project :AVIOCtrlDefine.
子项目引入依赖不兼容致使的。
compile project(path: ':AVIOCtrlDefine', configuration: 'v3_1_5_0Release')修改成
implementation project(path: ':AVIOCtrlDefine')复制代码
  • Can't process attribute android:fillColor="@android:color/white": references to other resources are not supported by build-time PNG generation. See developer.android.com/tools/help/… for details.
添加
defaultConfig {
    vectorDrawables.useSupportLibrary = true
  }复制代码
  • Error:(3, 5) error: resource 'string/How_to_add_anew$' has invalid entry name 'How_to_add_anew$'. Invalid character 'How_to_add_anew$'.
字符串不能带特殊字符
鼠标右键 -> refactor name -> rename便可。复制代码
  • Error:(63, 1) Execution failed for task ':aspectj:compileDebugJavaWithJavac'.

    No such property: project for class: com.android.build.gradle.LibraryPluginandroid

去除LibraryPlugin plugin = project.plugins.getPlugin(LibraryPlugin)
和  , "-bootclasspath", plugin.project.android.bootClasspath.join(
File.pathSeparator)复制代码
  • ./gradlew clean报错
子项目添加
repositories {
        jcenter()
        maven {
            url 'https://maven.google.com'
        }
    }复制代码

最后终于运行起来了。