我尝试将我的Android项目迁移到新的实验性gradle插件。我按照this页面上的说明操作。我对所需文件进行了更改,但在尝试使用gradle文件同步项目时出错。
我的错误:无法加载类'com.android.build.gradle.managed.ProductFlavor_Impl'。 此意外错误的可能原因包括:
对于损坏的Gradle进程,您还可以尝试关闭IDE,然后终止所有Java进程。
- Gradle的依赖关系缓存可能已损坏(这有时会在网络连接超时后发生。) 重新下载依赖项和同步项目(需要网络)
- Gradle构建过程(守护程序)的状态可能已损坏。停止所有Gradle守护进程可以解决此问题。 停止Gradle构建过程(需要重新启动)
- 您的项目可能正在使用第三方插件,该插件与项目中的其他插件或项目请求的Gradle版本不兼容。
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
但我仍然不知道如何解决它。
答案 0 :(得分:6)
如果这不是项目中的真实文件,请确保您拥有:
minSdkVersion.apiLevel
targetSdkVersion.apiLevel
而不是:
minSdkVersion
targetSdkVersion
我遇到了同样的问题,并修复了它。