首页 > 解决方案 > React-native run-android - uses-sdk:minSdkVersion 不能更小错误

问题描述

标题

运行命令react-native run-android构建在同一位置完全失败并产生以下内容error

:app:processDebugManifest
C:\Users\me\ReactApp\wats\android\app\src\main\AndroidManifest.xml:5:5-8:12 Error:
        uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library [wats:react-native-watson:unspecified] C:\Users\me\ReactApp\wats\node_modules\react-native-watson\android\build\intermediates\bundles\default\AndroidManifest.xml
        Suggestion: use tools:overrideLibrary="com.reactlibrary" to force usage

See http://g.co/androidstudio/manifest-merger for more information about the manifest merger.
:app:processDebugManifest FAILED

FAILURE: Build failed with an exception.

我知道这个错误应该是什么意思。问题是引用的 AndroidManifest 已将 minSdkVersion 声明为 19:`

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

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<application
  android:name=".MainApplication"
  android:label="@string/app_name"
  android:icon="@mipmap/ic_launcher"
  android:allowBackup="false"
  android:theme="@style/AppTheme">
  <activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
    android:windowSoftInputMode="adjustResize">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
  </activity>
  <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>

`

这显然似乎是某种缓存问题。最烦人的是,即使我创建了一个全新的 Native React 项目并安装了所需的包并尝试运行它,我也会得到同样的错误(即使我已经明确确保 Manifest 中的所有这些值都是正确的) . 我尝试npm clear cache --force了不起作用的命令;另外,这似乎react-native run-android --reset-cache不起作用(找到了一张关于它的 RN 票,但似乎从未修复过);在android studio下试过gradlew clean命令,但没有任何效果。

有什么想法可以尝试吗?

标签: react-native

解决方案


在 Android Studio 中打开 React Native 项目,并尝试从那里编译项目。该过程也失败了,但 Android Studio 中的错误消息更具体一些。从 React Native 错误消息中,我得到的印象是问题出在AndroidManifest文件上,但实际上问题出在build.gradle文件内部,确实定义minSdkVersion为 16。更新此值后,问题得到解决。


推荐阅读