使用 minSdk 最多为 16 的兼容库

Dev*_*404 4 android gradle react-native yarnpkg detox

您好,我正在尝试构建排毒来测试我的应用程序。我面临兼容性问题。我的应用程序运行 Android 版本 21 至 31。当我运行命令“ yarn detox build -c android”时,出现以下错误

错误:

任务:react-native-midnight:processDebugAndroidTestManifest失败[androidx.vectordrawable:vectordrawable-animated:1.0.0] /Users/user/.gradle/caches/transforms-2/files-2.1/5677f0d1d2fd33816116c626e2dd87f1/vectordrawable-animated-1.0.0 /AndroidManifest.xml 警告:包名称“androidx.vectordrawable”用于:androidx.vectordrawable:vectordrawable-animated:1.0.0、androidx.vectordrawable:vectordrawable:1.0.1。/Users/user/projects/MyWorkspaceapp/node_modules/react-native-midnight/android/build/intermediates/tmp/manifest/androidTest/debug/manifestMerger10963475594834660155.xml:5:5-74 错误:uses-sdk:minSdkVersion 16 不能小于库 [com.facebook.react:react-native:0.65.2] /Users/user/.gradle/caches/transforms-2/files-2.1/b7e25968130290bea6922f5b0f7f24b0/jetified-react-native-0.65 中声明的版本 21。 2/AndroidManifest.xml,因为该库可能使用 16 中不可用的 API 建议:使用 minSdk 至多 16 的兼容库,或将此项目的 minSdk 版本增加到至少 21,或使用 tools:overrideLibrary="com.2/AndroidManifest.xml"。 facebook.react”强制使用(可能导致运行时失败)

有关清单合并的更多信息,请参阅http://g.co/androidstudio/manifest-merger 。

构建.gradle:

ext {
    compileSdkVersion = 31
    targetSdkVersion = 31
    minSdkVersion = 21
}

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
//    buildToolsVersion rootProject.ext.buildToolsVersion
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 31
        multiDexEnabled true
    }
}
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml

> <uses-sdk android:minSdkVersion="21"
>       android:targetSdkVersion="31"
>       android:maxSdkVersion="31"
>       tools:overrideLibrary="com.facebook.react" />
Run Code Online (Sandbox Code Playgroud)

Dev*_*404 7

在 build.gradle 中添加以下行。有用

subprojects { 
    ext {
        compileSdk = rootProject.ext.compileSdkVersion
        minSdk = rootProject.ext.minSdkVersion
        targetSdk = rootProject.ext.targetSdkVersion
    }
    afterEvaluate { subproject ->
        if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
            android {
                compileSdkVersion rootProject.ext.compileSdkVersion
                buildToolsVersion rootProject.ext.buildToolsVersion
                defaultConfig {
                    minSdkVersion rootProject.ext.minSdkVersion
                    targetSdkVersion rootProject.ext.targetSdkVersion
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)