当我们将compileSdkVersion和targetSdkVersion从26更改为23时,为什么Android Studio会在清单文件中抛出错误?

时间:2018-02-20 12:42:57

标签: android android-gradle android-manifest

我彻底搜索过,无法找到我所面临的错误的原因。

我做过的事情:

  1. 我更改了compileSdkVersion&应用程序gradle文件中的targetSdkVersions从26到23。
  2. 我现在点击了同步。
  3. 导致7条错误消息使我的清单文件变得混乱。
  4. 片断:

    1. 将编译后的我的应用程序Gradle文件,目标sdk版本从26
    2. 更改为23
      apply plugin: 'com.android.application'
      
      android {
          compileSdkVersion 26
          defaultConfig {
              applicationId "com.airtelanalytics"
              minSdkVersion 14
              targetSdkVersion 26
              versionCode 1
              versionName "1.0"
              testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
          }
          buildTypes {
              release {
                  minifyEnabled false
                  proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
              }
          }
      }
      
      dependencies {
          implementation fileTree(dir: 'libs', include: ['*.jar'])
          implementation 'com.android.support:appcompat-v7:26.1.0'
          compile 'com.android.support:recyclerview-v7:26.1.+'
          compile 'com.jaredrummler:android-processes:1.1.1'
          implementation 'com.android.support.constraint:constraint-layout:1.0.2'
          testImplementation 'junit:junit:4.12'
          androidTestImplementation 'com.android.support.test:runner:1.0.1'
          androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
      }
      
      1. 已安装Android SDK Platform 23
      2. Sdk 23 installed already

        1. 由于SDK版本从26更改为23
        2. 而导致错误消息(影响清单文件)

          Error Messages

          1. 清单文件
          2.   

            <uses-sdk
                android:minSdkVersion="14"
                android:targetSdkVersion="23" />
            
            <application
                android:allowBackup="true"
                android:debuggable="true"
                android:icon="@mipmap/ic_launcher"
                android:label="@string/app_name"
                android:roundIcon="@mipmap/ic_launcher_round"
                android:supportsRtl="true"
                android:theme="@style/AppTheme" >
                <activity android:name="com.analyticsdemo.MainActivity" >
                    <intent-filter>
                        <action android:name="android.intent.action.MAIN" />
            
                        <category android:name="android.intent.category.LAUNCHER" />
                    </intent-filter>
                </activity>
            </application>
            
                 

            如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

  

我更改了compileSdkVersion&amp;应用程序gradle文件中的targetSdkVersions从26到23。

这不是一个好计划,特别是如果您计划通过Play商店发货,就像have to raise the values again shortly一样。

  

如何解决这个问题?

最佳解决方案是将compileSdkVersiontargetSdkVersion移回26。

否则,修复编译器报告的错误。

在这种情况下,您的清单在android:roundIcon上有<application>android:roundIcon与API级别23不存在。您通过compileSdkVersion 23说明您想要使用API​​ Level 23存在的规则进行编译,并且包括不使用当时不存在的东西。所以,从你的实际清单中删除android:roundIcon