为啥 AndroidManifest.xml 的 targetSdkVersion 无效?

Posted

技术标签:

【中文标题】为啥 AndroidManifest.xml 的 targetSdkVersion 无效?【英文标题】:Why does AndroidManifest.xml have invalid targetSdkVersion?为什么 AndroidManifest.xml 的 targetSdkVersion 无效? 【发布时间】:2018-12-29 14:10:39 【问题描述】:

我使用 android studio 3 构建了一个应用程序,但是当我想发布它时,市场说“你的应用程序必须有一个有效的 targetSdkVersion 集。要解决这个问题,你需要编辑你的 AndroidManifest.xml 文件并再次上传.apk 文件。” 我认为 proguard 会导致这个问题,所以将-keep AndroidManifest.xml 添加到规则中。但这并不能解决我的问题。 请问你能帮帮我吗? 我忘了说我的清单中没有 targetSdkVersion。我手动添加了它,但没有解决我的问题。 我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ir.farshidete.breathefree">

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /><!--optional-->
    <uses-permission android:name="android.permission.VIBRATE" /><!--optional-->

    <application 
        android:name=".G"
        android:allowBackup="true"
        android:icon="@drawable/icon128"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:theme="@style/AppTheme">
        <activity android:name=".Main_Activity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Relaxing_Activity" />
        <activity android:name=".Setting_Activity" />
        <activity android:name=".Info_Activity" />
        <activity android:name=".Absorption_Activity" />
        <activity android:name=".Capacity_Activity" />
        <activity android:name=".Control_Activity" />
        <activity android:name=".Program_Activity" />
        <activity android:name=".Contact_Activity" />
        <activity android:name="ir.tapsell.sdk.TapsellAdActivity"
            android:configChanges="keyboardHidden|orientation|screenSize" >
        </activity>
    </application>
</manifest>

我的毕业生:

apply plugin: 'com.android.application'

android 
    compileSdkVersion 28
    defaultConfig 
        applicationId "ir.farshidete.breathefree"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    
    buildTypes 
        debug 
            minifyEnabled false
            // Uses new built-in shrinker http://tools.android.com/tech-docs/new-build-system/built-in-shrinker
            useProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            testProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguardTest-rules.pro'
        

        release 
            minifyEnabled false
            useProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            testProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguardTest-rules.pro'
        
    


dependencies 
    api(name:'tapsell-sdk-android', ext:'aar')
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

【问题讨论】:

从清单中删除 targetSdkVersion。让它在您的应用级 gradle 文件中。 我在清单中没有那个... 如果您将 Gradle 文件的相关部分和清单 xml 添加到您的问题中会有所帮助 【参考方案1】:

最后我通过以下方式解决了它: 删除:

minSdkVersion 15
targetSdkVersion 28

来自 gradle。 并添加:

<uses-sdk
    android:minSdkVersion="15"
    android:targetSdkVersion="26" />

显化! 看来 slideme.org 不是最新的...

【讨论】:

以上是关于为啥 AndroidManifest.xml 的 targetSdkVersion 无效?的主要内容,如果未能解决你的问题,请参考以下文章

Android studio:为啥在 AndroidManifest.xml 和 build.gradle 中都指定了 minSdkVersion 和 targetSdkVersion?

AndroidManifest.xml文件安全探索

AndroidManifest.xml文件安全探索

如何从 APK 文件中查看 AndroidManifest.xml?

AndroidManifest.xml

SourceTree提交AndroidManifest.xml文件