Не удается собрать 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. Нажмите кнопку ОК, чтобы загрузить его

перестроить, чтобы проверить

надеюсь, это поможет

Другие вопросы по тегам