React-Native Run-Android-Uses-SDK:minSdkVersion不能再小错误

时间:2018-07-11 19:36:35

标签: react-native

标题

运行命令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项目并安装了所需的软件包并尝试运行它,也会遇到相同的错误(即使我已明确确保清单中的所有这些值都是正确的) 。 我已经尝试了npm clear cache --force命令,但该命令无效。另外,react-native run-android --reset-cache似乎不起作用(找到了一张RN票证,但似乎从未修复过);在android studio下尝试过gradlew clean命令,但这没有任何效果。

有什么想法可以尝试吗?

1 个答案:

答案 0 :(得分:1)

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