Ошибка при связывании библиотеки с React Native - PullRequest
0 голосов
/ 20 апреля 2020

Я установил библиотеку с именем Reaction-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.

Ответы [ 2 ]

0 голосов
/ 20 апреля 2020

/ home / zain / рабочий стол / Kolachi / demo / pos-proto / android / app / src / main / java / com / resturantapp / MainApplication. java: 82: ошибка: несовместимые типы: MainReactPackage не может быть преобразованным в int packages.add (новый MainReactPackage (),

Это ошибка. Вы можете проверить, почему в MainApplication добавлен MainReactPackage. java в вашем android src / main Папка .java / com / restaurantapp. Фактически удалите или закомментируйте строку ниже и снова запустите проект.

packages.add(new MainReactPackage(),

Вам не нужно добавляйте пакеты больше. RN0.60 и выше поддерживает автоматическое связывание. Я закомментировал свои пакеты, потому что они больше не нужны.

0 голосов
/ 20 апреля 2020

Если вы используете response-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);
}

Надеюсь, это поможет вам.

...