javascript - 将库与 React Native 链接时遇到错误
问题描述
我安装了一个名为react-native-imei的库。安装后,我已将此库与 React Native 相关联,例如react-native link react-native-imei
. 在我运行项目之后,我遇到了错误。错误如下所述。
> Task :react-native-imei:compileDebugJavaWithJavac
> Task :realm:forwardDebugPort
8083
> Task :app:compileDebugJavaWithJavac FAILED
Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings
329 actionable tasks: 22 executed, 307 up-to-date
Note: /home/zain/Desktop/Kolachi/demo/pos-proto/node_modules/react-native-imei/android/src/main/java/codes/simen/IMEI/RNImeiModule.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
* daemon not running; starting now at tcp:5037
* daemon started successfully
/home/zain/Desktop/Kolachi/demo/pos-proto/android/app/src/main/java/com/resturantapp/MainApplication.java:82: error: incompatible types: MainReactPackage cannot be converted to int
packages.add(new MainReactPackage(),
^
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
1 error
FAILURE: Build failed with an exception.
解决方案
如果您使用 react-native>=60.0,则无需使用react-native link react-native-imei
. 它将自动链接。
由于这个包读取手机的状态,你必须添加<uses-permission android:name="android.permission.READ_PHONE_STATE" />
到android/app/src/main/AndroidManifest.xml
这个文件中。
在 SDK 版本 23 之前的设备上,如果权限出现在清单中,则会自动授予权限。否则,您必须遵循此程序。
import { PermissionsAndroid } from 'react-native';
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.READ_PHONE_STATE,
{
title: "Phone State's Permission",
message: "This app needs access to your phone's state",
buttonNeutral: "Ask Me Later",
buttonNegative: "Cancel",
buttonPositive: "OK"
}
);
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log("You can read phone's state");
IMEI.getImei().then(imeiList => {
console.log("imeiList"); // prints ["AABBBBBBCCCCCCD"]
console.log(imeiList); // prints ["AABBBBBBCCCCCCD"]
});
} else {
console.log("Permission denied");
}
} catch (err) {
console.warn(err);
}
希望它会帮助你。
推荐阅读
- r - 如何将列表的元素存储到独立向量中
- javascript - createProvider 不是从 react-redux 导出的?
- java - 从存储中随机获取数据 url
- reactjs - 使用axiosinterceptors.request时error.response.data未定义
- javascript - 关闭图标上的汉堡菜单,onclick
- excel - Excel 2010 VBA:跨多个工作簿使用相对引用
- bash - 如何在 bash 中生成每一行时读取 subshell 输出
- visual-studio-code - VSCode:远程使用开发容器,无需本地安装 docker
- ionic-framework - 在 Ionic 4 中启动外部应用程序的白屏
- javascript - 笑话:如何测试返回函数的函数