运行命令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
命令,但这没有任何效果。
有什么想法可以尝试吗?
答案 0 :(得分:1)
在Android Studio中打开React Native项目,并尝试从那里编译该项目。该过程也失败了,但是Android Studio中的错误消息更加具体。从React Native错误消息中,我得到了一个问题,一个问题是build.gradle
文件,但实际上问题出在minSdkVersion
文件中,该文件确实将insert()
定义为16。更新之后这个值解决了问题。