Android Studio 3.0 Flavor Dimension 문제
스튜디오 카나리아 빌드로 업그레이드되었습니다.저의 이전 텔레그램 메신저 프로젝트에서 다음과 같은 오류가 발생했습니다.
오류: 이제 모든 맛이 명명된 맛 차원에 속해야 합니다.'armv7' 맛이 맛 차원에 할당되지 않았습니다.자세한 내용은 https://d.android.com/r/tools/flavorDimensions-missing-error-message.html 에서 확인하십시오.
어떻게 해야 하나?저는 이미 그 링크를 보았지만 어떻게 해야 하는지 이해할 수 없었습니다.저는 현재 릴리즈, 디버그, foss의 3가지 빌드 버전을 가지고 있습니다.
메커니즘이 실제로 필요하지 않은 경우에는 임의의 맛 차원을 지정하십시오.build.gradle
또는build.gradle.kts
:
android {
...
flavorDimensions("default")
...
}
자세한 내용은 마이그레이션 가이드를 참조하십시오.
노력하고 주의 깊게 읽은 후에, 저는 그것을 스스로 해결했습니다.해결책은 build.gradle에 다음 줄을 추가하는 것입니다.
flavorDimensions "versionCode"
android {
compileSdkVersion 24
.....
flavorDimensions "versionCode"
}
여기서 이 문제를 해결할 수 있습니다. flavorsDimension을 productFlavors의 이름과 함께 추가하고 치수도 정의해야 합니다. 아래 예를 참조하십시오. 자세한 내용은 여기를 참조하십시오. https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html
flavorDimensions 'yourAppName' //here defined dimensions
productFlavors {
production {
dimension 'yourAppName' //you just need to add this line
//here you no need to write applicationIdSuffix because by default it will point to your app package which is also available inside manifest.xml file.
}
staging {
dimension 'yourAppName' //added here also
applicationIdSuffix ".staging"//(.staging) will be added after your default package name.
//or you can also use applicationId="your_package_name.staging" instead of applicationIdSuffix but remember if you are using applicationId then You have to mention full package name.
//versionNameSuffix "-staging"
}
develop {
dimension 'yourAppName' //add here too
applicationIdSuffix ".develop"
//versionNameSuffix "-develop"
}
치수를 사용하지 않으려면 이 라인을 사용해야 합니다.
android {
compileSdkVersion 24
...
flavorDimensions "default"
...
}
그러나 타이어 치수를 사용하려면 먼저 치수 이름을 선언한 다음 설명서의 예제 다음에 이 이름을 사용해야 합니다.
android {
...
buildTypes {
debug {...}
release {...}
}
// Specifies the flavor dimensions you want to use. The order in which you
// list each dimension determines its priority, from highest to lowest,
// when Gradle merges variant sources and configurations. You must assign
// each product flavor you configure to one of the flavor dimensions.
flavorDimensions "api", "mode"
productFlavors {
demo {
// Assigns this product flavor to the "mode" flavor dimension.
dimension "mode"
...
}
full {
dimension "mode"
...
}
// Configurations in the "api" product flavors override those in "mode"
// flavors and the defaultConfig block. Gradle determines the priority
// between flavor dimensions based on the order in which they appear next
// to the flavorDimensions property above--the first dimension has a higher
// priority than the second, and so on.
minApi24 {
dimension "api"
minSdkVersion 24
// To ensure the target device receives the version of the app with
// the highest compatible API level, assign version codes in increasing
// value with API level. To learn more about assigning version codes to
// support app updates and uploading to Google Play, read Multiple APK Support
versionCode 30000 + android.defaultConfig.versionCode
versionNameSuffix "-minApi24"
...
}
minApi23 {
dimension "api"
minSdkVersion 23
versionCode 20000 + android.defaultConfig.versionCode
versionNameSuffix "-minApi23"
...
}
minApi21 {
dimension "api"
minSdkVersion 21
versionCode 10000 + android.defaultConfig.versionCode
versionNameSuffix "-minApi21"
...
}
}
}
...
저는 build.gradle(모듈: 앱)의 애플리케이션에 flavorDimensions를 사용했습니다.
flavorDimensions "tier"
productFlavors {
production {
flavorDimensions "tier"
//manifestPlaceholders = [appName: APP_NAME]
//signingConfig signingConfigs.config
}
staging {
flavorDimensions "tier"
//manifestPlaceholders = [appName: APP_NAME_STAGING]
//applicationIdSuffix ".staging"
//versionNameSuffix "-staging"
//signingConfig signingConfigs.config
}
}
// Specifies two flavor dimensions.
flavorDimensions "tier", "minApi"
productFlavors {
free {
// Assigns this product flavor to the "tier" flavor dimension. Specifying
// this property is optional if you are using only one dimension.
dimension "tier"
...
}
paid {
dimension "tier"
...
}
minApi23 {
dimension "minApi"
...
}
minApi18 {
dimension "minApi"
...
}
}
KotlinDSL에서 다음과 같이 사용할 수 있습니다.
flavorDimensions ("PlaceApp")
productFlavors {
create("tapsi") {
setDimension("PlaceApp")
buildConfigField("String", "API_BASE_URL", "https://xxx/x/x/")
}
}
간단한 맛(free/pro, demo/full 등)이 있는 경우 build.gradle 파일에 추가합니다.
android {
...
flavorDimensions "version"
productFlavors {
free{
dimension "version"
...
}
pro{
dimension "version"
...
}
}
차원별로 "맛의 맛"을 만들 수 있습니다.더 읽어보세요.
언급URL : https://stackoverflow.com/questions/44105127/android-studio-3-0-flavor-dimension-issue
'programing' 카테고리의 다른 글
re."예기된 문자열 또는 바이트와 유사한 개체"로 하위 오류가 발생 (0) | 2023.08.23 |
---|---|
빠져나오지 않고 html을 핸들 바 템플릿에 삽입합니다. (0) | 2023.08.23 |
Spring boot - 백업 로그 파일 수가 7개로 제한됨 (0) | 2023.08.23 |
router.navigateBy 사용 방법Url 및 router.navigate in Angular (0) | 2023.08.23 |
내 AMD 기반 기계는 리틀 엔디안 또는 빅 엔디안을 사용합니까? (0) | 2023.08.23 |