问题描述
我无法理解 Android Studio 中的构建变体。我创建了一个空项目并添加了以下产品口味。
apply plugin: 'com.android.application'
android {
compileSdkVersion 30
buildToolsversion "30.0.3"
defaultConfig {
applicationId "com.example.myapplication"
minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
flavorDimensions "version"
productFlavors {
demo {
applicationIdSuffix ".demo"
}
full {
applicationIdSuffix ".full"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'
}
}
}
dependencies {
implementation filetree(dir: 'libs',include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
我将项目与 gradle 文件同步,但我只得到了 demoDebug 变体。根据我的理解,我应该得到,
- 演示调试
- 演示发布
- 完整调试
- 完整发布
我有没有做错什么?非常感谢任何帮助。
解决方法
像这样指定风味块中每种风味的维度
flavorDimensions "version"
productFlavors {
demo {
dimension 'version'
applicationIdSuffix ".demo"
}
full {
dimension 'version'
applicationIdSuffix ".full"
}
}
,
尝试手动将您的项目与成绩文件同步。根据您的 Android Studio 版本使用以下任一项:
Tools -> Android -> Sync Project with Gradle Files
[对于较旧的 Android Studio 版本]
File -> Sync Project with Gradle Files
[适用于较新的 Android Studio 版本]
在您的 /gradle/gradle-wrapper.properties 文件中,将以下设置更新为:
distributionUrl=https://services.gradle.org/distributions/gradle-6.1.1-all.zip
现在,转到工具 -> Android -> 同步项目与 Gradle 文件
这将下载 Gradle 的最新发行版,并在完成后自动重新加载您的项目和构建变体。
确保将项目的 build.gradle 文件更新为
依赖项{ 类路径 'com.android.tools.build:gradle:4.0.2' }