Не удается собрать React Native 0.59.8 android.support.v4.net.ConnectivityManagerCompat
Я перешел на более новую версию React Native и обновил некоторые библиотеки до последней версии. Часть моего project.json
:
"@react-native-community/async-storage": "^1.4.1",
"@react-native-community/netinfo": "^3.1.1",
"babel-core": "^6.26.3",
"babel-loader": "^7.1.5",
"babel-preset-react-native": "^4.0.0",
"react": "16.8.6",
"react-native": "^0.59.8"
Я получаю эту проблему здесь:
D: \ myapp \ node_modules @ реагировать-нативное сообщество \netinfo\android\src\main\java\com\ реагировать-общение \netinfo\ConnectivityReceiver.java:12: ошибка: пакет android.support.v4.net не существует импорт android.support.v4.net.ConnectivityManagerCompat; ^ D:\myapp\node_modules@ реагировать-нативное сообщество \netinfo\android\src\main\java\com\ реактивативное общение \netinfo\ConnectivityReceiver.java:154: ошибка: не удается найти символ ConnectivityManagerCompat.isActiveNetworkMetered(getConnectivityManager()); Символ ^: переменная ConnectivityManagerCompat расположение: класс ConnectivityReceiver 2 ошибки
gradle.properties
android.enableJetifier = true
android.useAndroidX=true
корень Gradle
ext {
buildToolsVersion = "28.0.3"
minSdkVersion = 21
compileSdkVersion = 28
targetSdkVersion = 28
supportLibVersion="28.0.0"
}
Gradle зависимости
dependencies {
implementation project(':react-native-code-push')
implementation project(':react-native-gesture-handler')
implementation project(':react-native-webview')
implementation project(':react-native-push-notification')
implementation project(':@react-native-community_netinfo')
implementation project(':@react-native-community_async-storage')
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
implementation 'com.google.firebase:firebase-messaging:+'
implementation 'com.facebook.react:react-native:+'
}
2 ответа
В моем случае мне пришлось отключить отключенный AndroidX и Jettifier, потому что некоторые библиотеки все еще зависят от старых библиотек поддержки и устарели зависимости, которые нельзя легко перенести на AndroidX.
Это потому, что у вашего SDK есть проблема при обновлении до платформы 28
открытая андроид студия
открыть менеджер SDK
установите флажок "показать детали пакета"
под платформой пакета 28, отметьте "источник для Android" или что-то подобное, я не помню, но это источник для пакета 28. Нажмите кнопку ОК, чтобы загрузить его
перестроить, чтобы проверить
надеюсь, это поможет