安卓构建警告:将新的命名空间映射到旧的命名空间

69

我在Android Studio中创建了一个新项目,并添加了所有最新的依赖。在构建项目时,我收到了这些警告,但应用程序中没有任何代码。这些警告是在我添加依赖项后开始显示的。

我应该就让它这样吗?

同步输出

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-kapt'
    id 'dagger.hilt.android.plugin'
}

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
    buildFeatures {
        viewBinding = true
    }
}

dependencies {

    def version_nav = "2.3.4"
    def lifecycle_version = "2.3.0"
    def version_retrofit_coroutines_adapter = "0.9.2"
    def version_kotlin_coroutines = "1.3.9"
    def version_moshi = "1.9.2"
    def retrofit ="2.9.0"
    def hilt_version = "2.31-alpha"
    def hilt_viewmodels = "1.0.0-alpha03"
    def fragment_ktx = "1.3.1"
    def okhttp = "4.9.0"
    def moshi_converter = "2.8.1"
    def recycler_view_version = "1.2.0-beta02"
    def timber_version = "4.7.1"
    def java_poet_version = "1.13.0"
    def coil_version = "1.1.1"


    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.3.2'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.3.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

    // Timber
    implementation "com.jakewharton.timber:timber:$timber_version"

    implementation "com.squareup.retrofit2:retrofit:$retrofit"
    implementation "com.squareup.retrofit2:converter-gson:$retrofit"

    // Moshi
    implementation "com.squareup.moshi:moshi:$version_moshi"
    implementation "com.squareup.moshi:moshi-kotlin:$version_moshi"
    implementation "com.squareup.retrofit2:converter-moshi:$moshi_converter"

    // Navigation
    implementation "androidx.navigation:navigation-fragment-ktx:$version_nav"
    implementation "androidx.navigation:navigation-ui-ktx:$version_nav"

    // Coroutines
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$version_kotlin_coroutines"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$version_kotlin_coroutines"

    // Retrofit Coroutines Support
    implementation "com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:$version_retrofit_coroutines_adapter"

    //RecyclerView
    implementation "androidx.recyclerview:recyclerview:$recycler_view_version"

    // ViewModel
    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
    // LiveData
    implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
    // Lifecycle only (without ViewModel or LiveData)
    implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version"

    //OkHttp3
    implementation"com.squareup.okhttp3:okhttp:$okhttp"

    //Hilt
    implementation "com.google.dagger:hilt-android:$hilt_version"
    kapt "com.google.dagger:hilt-android-compiler:$hilt_version"

    //Hilt View models
    implementation "androidx.hilt:hilt-lifecycle-viewmodel:$hilt_viewmodels"
    kapt "androidx.hilt:hilt-compiler:$hilt_viewmodels"

    //Fragments
    implementation "androidx.fragment:fragment-ktx:$fragment_ktx"

    //Java Poet
    kapt "com.squareup:javapoet:$java_poet_version"

    //Coil
    implementation "io.coil-kt:coil:$coil_version"

}

kapt {
    correctErrorTypes true
}

应用程序运行时没有任何问题,但由于这是我第一次看到的警告。我在其他地方找不到相关信息,想知道为什么会发生这种情况。

14个回答

25

这是由于Gradle插件版本较旧所导致的。

我已将SDK版本更改为31,但我的Gradle插件版本为4.2。因此,我遇到了同样的问题。

要解决此问题,只需转到您的项目级别build.gradle文件并将Gradle插件版本更新为最新版本,如下所示:

buildscript {

  // ...

  dependencies {
    classpath 'com.android.tools.build:gradle:7.0.2'
  }
}

写下这篇回答时,Gradle 7.0.2 是最新版本。


1
同时,请更新您的gradle-wrapper.properties文件,将distributionUrl=https://services.gradle.org/distributions/gradle-7.0.2-all.zip添加进去。 - Ramkesh Yadav
@RamkeshYadav 在我的情况下,当我重新同步项目时,Android Studio会自动完成这个操作。感谢您指出这一点。对于那些Studio没有自动完成的情况来说,这是一个很好的提示。 - Parikshit Singh

23

我遇到了同样的问题,结果发现没有安装所使用的 buildToolsVersion "30.0.3",所以我切换到已安装的 buildToolsVersion "29.0.3"(在我的情况下),警告就消失了。


5
不要使用这个 buildToolsVersion。如果仍然遇到问题,请使缓存无效并重新启动。 - Nizamudeen Sherif
1
@NizamudeenSherif 这不起作用,尝试清除缓存并重启 - EAS
3
请描述清楚 buldToolsVersion 出现在哪里。 - Dhananjay Gavali

17

我正在使用 Android Studio Arctic Fox (2020.3.1, 补丁版),它指向的是 buildToolsVersion "30.0.2",但遇到了相同的错误。

我通过将 Android Gradle 插件版本从 4.1.0 更新到 7.0.2 来解决这个问题。

图像参考


1
在Android Studio中,您还可以通过转到文件>项目结构来更新Gradle插件版本(和Gradle版本)。 - Alessandro Mulloni
2
打开升级助手:https://dev59.com/BsPra4cB1Zd3GeqPhH2X#70971871 - fabienbranchel
升级助手是解决我的问题的关键。感谢@fabienbranchel提供了打开它的链接。 - Joe
我该在哪里找到这个助手呢?如果我进入工具/ AGP 升级助手,它并没有显示出来。 - Thomas Weller

16
我在将Flutter升级到3.0版本后,使用VSCode构建我的Flutter应用程序时遇到了类似的错误消息。以下是解决方法。
  1. 在Android Studio中更新所有Android SDK包。
  2. 在你的“..\your_app\android\app\build.gradle”文件中,将compileSdkVersion更改为31。如果你还想将targetSdkVersion更改为31,则必须在“AndroidManifest.xml”文件的下添加android:exported="true"android:exported="false"。有关如何选择以及有关“android:exported”的更多详细信息,请查看android:exported details
  3. 在你的“..\your_app\android\build.gradle”文件中,将“ext.kotlin_version”更改为'1.6.10',并将gradle版本的“classpath”更改为'com.android.tools.build:gradle:7.1.2'
  4. 在你的“..\your_app\android\gradle\wrapper\gradle-wrapper.properties”文件中,将“distributionURL”更改为https\://services.gradle.org/distributions/gradle-7.4-all.zip
  5. 运行flutter clean命令以删除旧的构建内容。
完成以上步骤后,构建将不会出现任何错误或警告。

编辑:原帖是针对Flutter 2.10版本的。我已经更新了Flutter 3.0版本的版本号。


4

这些步骤帮助了我:

  1. “构建 -> 清除项目”
  2. “文件 -> 无效缓存 / 重启”,选择 “无效并重启”选项,并关闭 Android Studio

1
如果我在使用Flutter工作呢? - Tarish

4
  1. 在Android Studio中,你也可以通过转到“文件”>“项目结构”来更新Gradle插件版本(和Gradle版本)。enter image description here

  2. 只需转到项目级别的build.gradle文件,并将Gradle插件版本更新为最新版本,如下所示:dependencies {classpath 'com.android.tools.build:gradle:7.0.2'}

  3. 更新gradle-wrapper.propertiesdistributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip


依赖项 {classpath 'com.android.tools.build:gradle:7.0.4'} 可用比 7.0.2 更高版本的 com.android.tools.build:gradle:7.0.4 和 distributionUrl=https://services.gradle.org/distributions/gradle-7.4.2-all.zip。 - ViKi Vyas

1
我安装了Android Studio Arctic Fox (2020.3.1),然后在vscode上也开始遇到同样的错误!

将新的ns映射到旧的ns blah blah

对于我来说,解决方法是卸载那个版本的android studio,从这里安装4.2.2并下载SDK文件,然后在UI中将其更新回Arctic Fox (from in UI),问题就解决了。我猜这是一个SDK的bug....


同样的问题在这里。 - carlosobedgomez
2
这个答案对我很有帮助。在我的情况下,我删除了Android 12预览版(S)SDK,并安装了Android 10.0(Q),问题得到了解决。问题出在SDK上... - Miramax Mars

0
Android build warning & Error 

1) Android Studio Dolphin 3.1 Patch

distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
classpath 'com.android.tools.build:gradle:7.3.0'
compileSdkVersion 33
android:exported="true"

Error :-
JDK 11 for that
com/android/tools/idea/gradle/run/OutputBuildAction has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
Error :-
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android

==>
Add this line :- 
Android Gradle Plugin Version :- 4.0.2
Gradler Wrapper :- 6.1.1
compileSdkVersion 30

Sdk location - Gradle Jdk  :-  11 version 11.0.17  / jvm 11

Clean and Rebuild it Run

2
你的回答目前写得不清楚。请编辑并添加更多细节,以帮助其他人理解它如何回答所提出的问题。您可以在帮助中心找到有关撰写良好答案的更多信息。 - Community

0

在更新我的旧Flutter项目时,我遇到了这些问题。旧的意思是从没有空安全性的版本升级到有空安全性的版本。

我添加了这个修复程序,现在它可以正常工作了。

ext.kotlin_version = '1.6.10'

    dependencies {    
    classpath 'com.android.tools.build:gradle:4.1.0'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath 'com.google.gms:google-services:4.3.13'
}    

0

我在 android 中的 build.gradle(:app) 中尝试了这个,它使得所有的事情都正常了:

  compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接