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

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

Error:Unable to load class ‘com.android.build.gradle.managed.ProductFlavor_Impl’.
Possible causes for this unexpected error include:

  • Gradle’s dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
    Re-download dependencies and sync project (requires network)
  • The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
    Stop Gradle build processes (requires restart)
  • Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.

In the case of corrupt Gradle processes,you can also try closing the IDE and then killing all Java processes.

我的app文件夹中的build.gradle与此非常相似:

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的问题,因为我的项目没有味道……

UPDATE

我试图清理我的项目 – 清理不成功,但清理过程中的错误消息更具体:

Error:(10,1) A problem occurred configuring project ‘:app’.
Exception thrown while executing model rule: com.android.build.gradle.model.BaseComponentModelPlugin$Rules#createVariantData(org.gradle.model.ModelMap,org.gradle.model.ModelMap,com.android.build.gradle.internal.TaskManager) > afterEach()
Could not resolve all dependencies for configuration ‘:app:_debugCompile’.
Exception thrown while executing model rule: model.android
Cannot set readonly property: minSdkVersion for class: com.android.build.gradle.managed.ProductFlavor_Impl

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

解决方法

如果这不是项目中的真实文件,请确保您具有:
minSdkVersion.apiLevel
targetSdkVersion.apiLevel

代替:

minSdkVersion
targetSdkVersion

我有同样的问题,这解决了它.

相关文章

ADB Remote ATV Android TV 的遥控器,基于 ADB Shell 命令 ...
使用Flutter自带的SearchDelegate组件实现搜索界面,通过魔改...
上篇文章讲解了怎么使用Kotlin的协程配合Retrofit发起网络请...
安卓开发——WebView+Recyclerview文章详情页,解决高度...
Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...