简体   繁体   中英

Why does Android Studio throw errors in the manifest file when we change the compileSdkVersion and targetSdkVersion from 26 to 23?

I have searched SO thoroughly and couldn't find the reason for the error that I am facing.

Things I did:

  1. I changed the compileSdkVersion & targetSdkVersions in app gradle file from 26 to 23.
  2. I clicked sync now.
  3. It resulted in 7 error messages making my manifest file go haywire.

Snippets:

  1. My App Gradle file after changing the compile,target sdk versions to 23 from 26
 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 is installed already

已安装SDK 23

  1. Error Messages (affecting Manifest file) due to change of SDK version from 26 to 23

错误讯息

  1. Manifest file

 <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> 

How to fix this ?

I changed the compileSdkVersion & targetSdkVersions in app gradle file from 26 to 23.

That is not a good plan, particularly if you plan to ship via the Play Store, as you will have to raise the values again shortly .

How to fix this ?

The best solution is to move your compileSdkVersion and targetSdkVersion back to 26.

Otherwise, fix the errors reported by the compiler.

In this case, your manifest has android:roundIcon on <application> , and android:roundIcon did not exist back with API Level 23. You are saying, via compileSdkVersion 23 , that you want to compile using the rules that existed for API Level 23, and that includes not using things that did not exist back then. So, get rid of android:roundIcon from your actual manifest.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM