降级 Android 应用的正确方法是什么?

What's the correct way to downgrade your Android app?

我是 Android 开发的新手,我想我可能犯了一个错误。我一直在 build.gradle 文件中使用 compileSdkVersion 25。但我希望我的应用程序支持 Android 4.1 及更高版本。

但是,当我 运行 我的应用程序在 Android 4.1 系统上时,它会立即关闭(我猜是因为它不受支持)。

我试图将 compileSdkVersion 25 更改为 compileSdkVersion 16,但这会产生很多错误(我知道为什么)。开始更改 Android 4.1 不支持的每一件小事有点烦人,所以..

问题: 降级 Android 应用程序的正确方法是什么?

当前 build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "xxxx"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        resValue "string", "google_maps_key", (project.findProperty("GOOGLE_MAPS_API_KEY") ?: "")
        multiDexEnabled  true
        useLibrary 'org.apache.http.legacy'
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.2.0'
    compile 'com.google.android.gms:play-services:9.8.0'
    compile 'com.google.firebase:firebase-core:9.8.0'

    testCompile 'junit:junit:4.12'
    compile 'com.android.support:design:25.2.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.1'
}

为此,设置

minSdkVersion 16 

在您的 build.gradle 和 运行 您的应用程序中,在模拟器中使用 Jelly Bean (API 16)。但是有些库在API 16中不支持。例如,当你想在你的应用程序中使用wearable widgets支持时,你的API级别必须是20或更高。

I've been working with compileSdkVersion 25 in my build.gradle file. But I want my application to be supported for Android 4.1 and higher.

关注
compileSdkVersion 是用于编译您的应用程序的 Android SDK 版本,不会更改运行时行为 因为您的 compileSdkVersion 是未包含在您的 APK.
强烈建议您始终使用 最新 SDK.
进行编译 这也意味着使用 compileSdk = 16 对你没有帮助。

Question: What is the correct way to downgrade your Android application?

如果问题是如何构建一个也可以在 Android 4.1 上运行的应用程序,通常的答案是在可能的地方使用 支持库 并检查所有需要 minSDK > 16 的方法。

在您的情况下,您应该检查 logcat.
中的错误是什么 没有简单的方法可以做到。