将项目迁移到新的实验性gradle插件

时间:2015-09-09 09:17:55

标签: android gradle android-gradle build.gradle gradle-plugin

我尝试将我的Android项目迁移到新的实验性gradle插件。我按照this页面上的说明操作。我对所需文件进行了更改,但在尝试使用gradle文件同步项目时出错。

  

错误:无法加载类'com.android.build.gradle.managed.ProductFlavor_Impl'。   此意外错误的可能原因包括:

  • Gradle的依赖关系缓存可能已损坏(这有时会在网络连接超时后发生。)   重新下载依赖项和同步项目(需要网络)
  • Gradle构建过程(守护程序)的状态可能已损坏。停止所有Gradle守护进程可以解决此问题。   停止Gradle构建过程(需要重新启动)
  • 您的项目可能正在使用第三方插件,该插件与项目中的其他插件或项目请求的Gradle版本不兼容。
对于损坏的Gradle进程,您还可以尝试关闭IDE,然后终止所有Java进程。

我的build.gradle文件夹中的

app与此非常相似:

apply plugin: 'com.android.model.application'
apply plugin: 'maven'

repositories {
    maven {
        url = getBaseRepository()
        credentials {
            username = NEXUS_USERNAME
            password = NEXUS_PASSWORD
        }
    }
    mavenCentral()
}

def int CACHE_LIMIT = CACHE_CHANGING_MODULES_FOR_SECONDS.toInteger()

configurations.all {
    resolutionStrategy.cacheChangingModulesFor CACHE_LIMIT, 'seconds'
}

model {
    android {
        compileSdkVersion = 23
        buildToolsVersion = "23.0.0"

        defaultConfig.with {
            applicationId = "<myRealAppIdIsHere>"
            minSdkVersion.apiLevel = 14
            targetSdkVersion.apiLevel = 18

            multiDexEnabled = true
        }
    }

    android.buildTypes {
        debug {
            /*buildConfigField.with {
                create() {
                    type = "boolean"
                    name = "DEBUG_BUILD"
                    value = rootProject.ext.debugBuild
                }
            }*/
        }
        release {
            minifyEnabled = false
            proguardFiles += 'proguard-rules.pro'
            /*buildConfigField.with {
                create() {
                    type = "boolean"
                    name = "DEBUG_BUILD"
                    value = rootProject.ext.releaseBuild
                }
            }*/
        }
    }
}


dependencies {
    // my dependencies are here...
}

有人知道问题出在哪里吗?我不知道为什么错误消息包含有关ProductFlavor的问题,因为我的项目没有任何风味......

更新

我尝试清理我的项目 - 清理不成功,但清理期间的错误消息更具体:

  

错误:(10,1)配置项目':app'时出现问题。   执行模型规则时抛出异常:com.android.build.gradle.model.BaseComponentModelPlugin $ Rules#createVariantData(org.gradle.model.ModelMap,org.gradle.model.ModelMap,com.android.build.gradle.internal.TaskManager )&gt; afterEach()   无法解析配置':app:_debugCompile'的所有依赖项。   执行模型规则时抛出异常:model.android   无法设置只读属性:类的minSdkVersion:com.android.build.gradle.managed.ProductFlavor_Impl

但我仍然不知道如何解决它。

1 个答案:

答案 0 :(得分:6)

如果这不是项目中的真实文件,请确保您拥有:

minSdkVersion.apiLevel
targetSdkVersion.apiLevel

而不是:

minSdkVersion
targetSdkVersion

我遇到了同样的问题,并修复了它。