自从我在新的 Android Studio 3.4 Canary 4 上更新了项目以来,gradle同步失败是因为:
project_b
我以前在Canary 3上工作,效果很好。
该项目是一个多功能应用程序,其中包括即时应用程序。
Gradle版本为gradle-5.0-milestone-1-all
我的项目级别build.gradle
ERROR: variant.getApplicationId() is not supported by feature plugins as it cannot handle delayed setting of the application ID. Please use getApplicationIdTextResource() instead.
Affected Modules: base
基本build.gradle
buildscript {
ext.kotlin_version = '1.3.10'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0-alpha04'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.2.0'
classpath 'android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha07'
}
}
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
ext {
compileSdkVersion = 28
minSdkVersion = 16
targetSdkVersion = 28
appVersionCode = 5
appVersion = "2.0.0-dev01"
}
app build.gradle
apply plugin: 'com.android.feature'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'jacoco'
apply plugin: 'androidx.navigation.safeargs'
android {
def yo = rootProject
compileSdkVersion yo.compileSdkVersion
baseFeature true
defaultConfig {
minSdkVersion yo.minSdkVersion
targetSdkVersion yo.targetSdkVersion
versionCode yo.appVersionCode
versionName yo.appVersion
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary true
multiDexEnabled true
}
buildTypes {
debug {
testCoverageEnabled !project.hasProperty('android.injected.invoked.from.ide')
multiDexKeepFile file('multidex-config.txt')
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
multiDexKeepFile file('multidex-config.txt')
}
}
dataBinding {
enabled = true
}
lintOptions {
disable "InvalidPackage"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
}
repositories {
mavenCentral()
google()
}
dependencies {
application project(':app')
feature project(':module1')
[...]
}
我试图在没有依赖项的情况下同步我的项目,但是它也不起作用。
我还试图使缓存无效并重新启动,但没有效果。
根据错误日志,问题出在基本build.gradle文件中,但我不知道出了什么问题。
提前感谢您的帮助!
答案 0 :(得分:3)
好的,我找到了问题。
这是安全参数导航插件,但是失败了。
apply plugin: 'androidx.navigation.safeargs'
如果我删除此行,则该项目能够同步但无法为导航safeargs中缺少的类建立原因。
在baseFeature build.gradle文件中应用的Android Studio 3.4 Canary 4导航插件中存在错误。
我将为此发布一个新问题。
答案 1 :(得分:1)
对于遇到类似问题的任何人,请确保您的project-level build.gradle
中的所有依赖关系都是最新的。
例如,当我的google-services插件版本过时时,我遇到了这个问题:
buildscript {
repositories {
...
}
dependencies {
...
classpath 'com.google.gms:google-services:4.0.1'
}
}
更新到最新版本后,问题已解决:
buildscript {
repositories {
...
}
dependencies {
...
classpath 'com.google.gms:google-services:4.2.0'
}
}