react-native - 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
命令,但没有任何效果。
有什么想法可以尝试吗?
解决方案
在 Android Studio 中打开 React Native 项目,并尝试从那里编译项目。该过程也失败了,但 Android Studio 中的错误消息更具体一些。从 React Native 错误消息中,我得到的印象是问题出在AndroidManifest
文件上,但实际上问题出在build.gradle
文件内部,确实定义minSdkVersion
为 16。更新此值后,问题得到解决。
推荐阅读
- excel - 读取 CSV 文件并写入特定工作表中的已知位置
- swift - Swift UIView zPosition 问题,视图与其他视图重叠
- javascript - 我如何只读值属性?
- node.js - 如何在社交媒体应用程序中显示包含群组参与者数量的群组列表?
- python - 根据具有预分配唯一标识符的数据帧为数据帧行分配唯一标识符
- python - 如何解决 ModuleNotFoundError:虚拟环境中没有名为“skimage”的模块
- android-studio - 不能全部导入 - Android Studio
- android - 如何使 .proto 定义文件在 Android Studio (4.2) 的 Android 视图中可见?
- php - 将属性路径分配给变量时,PHP simplexmlelement 找不到属性
- python - 如何保存选项卡式 json 文件