問(wèn)題
Android Studio編譯出現(xiàn):
Warning: 意外的元素 (uri:"", local:"base-extension")仙蛉。所需元素為<{}codename>,<{}layoutlib>,<{}api-level>
問(wèn)題原因:
Android Studio更新了項(xiàng)目配置文件荐健,舊的配置文件與新的編譯器不兼容
解決方案:
1. 替換gradle編譯文件
首先把項(xiàng)目視圖改成“Project”,
然后新建一個(gè)空項(xiàng)目弄喘,從新項(xiàng)目復(fù)制以下文件替換到舊項(xiàng)目:
├ gradlew
├ gradlew.bat
└ gradle
? └ wrapper
? ? ├ gradle-wrapper.jar
? ? └gradle-wrapper.properties
2. 更新 build.gradle
該文件內(nèi)容只是配置了兩個(gè)Gradle的插件,其中7.3.1為插件的版本
此處Gradle版本7.5.1甩牺,插件版本7.3.1蘑志,在 Project Structure 窗口下的 Project 頁(yè)修改,根據(jù)你安裝的版本調(diào)整
plugins {
id 'com.android.application' version '7.3.1' apply false
id 'com.android.library' version '7.3.1' apply false
}
3. 更新 settings.gradle
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
rootProject.name = "此處改成你的項(xiàng)目名"
// 復(fù)制此備注之上內(nèi)容到舊文件即可
include ':app'
include ':其他Module'
4. 更新每個(gè)Module下的 build.gradle
需要注意的地方是android下多了namespace贬派,之前的 xxxSdkVersion 現(xiàn)在只寫 xxxSdk 就行了
apply plugin: 'com.android.library'
android {
// 變化的地方1
namespace 'com.example.app'
compileSdk 33
// 變化的地方2
defaultConfig {
applicationId "com.example.app"
minSdk 21
targetSdk 33
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
// 以下內(nèi)容跟舊版本相同
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
// 導(dǎo)入的依賴包都在這里
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.4.1'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
}