CompileSdkVersion обновлен до 34 в проекте React Native, но не удалось подключиться к серверу Metro

Недавно я обновил compileSdkVersion моего проекта React Native с 33 до 34, чтобы соответствовать новой политике Google. После внесения этого изменения я не могу подключиться к серверу Metro. Вот подробности моей конфигурации android/app/build.gradle:

ext {
    buildToolsVersion = "33.0.0"
    minSdkVersion = 28
    compileSdkVersion = 34
    targetSdkVersion = 34
    ndkVersion = "25.0.8775105"
}

android {
    compileSdkVersion = 34

    defaultConfig {
        minSdkVersion = 28
        targetSdkVersion = 34
    }
}


Настройка моего проекта включает в себя:

  • Версия реакции: 18.2.0
  • Реагировать нативную версию: 0.72.3

Шаги, которые я предпринял на данный момент:

  1. Обновлены compileSdkVersion и targetSdkVersion до 34 в android/app/build.gradle.
  2. Очистил проект с помощью ./gradlew clean.
  3. Переустановил нодовые модули rm -rf node_modules && npm install or yarn install
  4. Пересобрал проект с помощью npx react-native run-android
  5. Запустил сервер Metro вручную с помощью npx react-native start Несмотря на эти действия, серверу Metro не удается подключиться при запуске приложения. Я также проверил, что все мои зависимости обновлены.
3
0
364
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Сначала обновите android/build.gradle

 compileSdkVersion = 34
targetSdkVersion = 34

если ваш рабочий файл кода, то ок. В моем случае мое приложение вылетает после этих изменений, поэтому я исправил сбой приложения в своих изменениях.

Главное приложение.java

    // Add imports
   import android.content.BroadcastReceiver;
   import android.content.Intent;
   import android.content.IntentFilter;
   import android.os.Build;
   import org.jetbrains.annotations.Nullable;


   // ...
   // Put this above  "public void onCreate()":
  @Override
  public Intent registerReceiver(@Nullable BroadcastReceiver receiver, IntentFilter filter) {
    if (Build.VERSION.SDK_INT >= 34 && getApplicationInfo().targetSdkVersion >= 34) {
      return super.registerReceiver(receiver, filter, Context.RECEIVER_EXPORTED);
    } else {
      return super.registerReceiver(receiver, filter);
    }
  }
// ....

приложение/build.gradle

    dependencies {
     //  ...
    implementation 'org.jetbrains:annotations:16.0.2'
    // ...
}

Инструменты сборки и AGP остались прежними?

CyberMew 26.07.2024 03:36

Я читал, что вам нужно обновить React-native до 0.74.

Ответ принят как подходящий

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

Получение Невозможно найти спецификацию для FBReactNativeSpec, от которой зависит RNReanimated в проекте React Native
Сканирование QR-кода с помощью Expo v.51 не работает
Почему при разрешении возникает ошибка: [email protected] при установке реакции-трехволокна в реакции-native?
Получить только одни данные одного документа вместо всех документов
Проблемы с использованием CameraView, импортированного из выставочной камеры, для настройки сканера QR-кода для выставочного проекта, ориентированного на реагирование
Родной модуль RNVectorIcons попытался переопределить RNVectorIcons
Получение ошибки сборки React Native XCode 15.4 и macOS Sonoma 14.5 «Ошибка выполнения команды PhaseScriptExecution с ненулевым кодом выхода»
Анимация при удалении из dom
Как исправить код ошибки цветного буфера студии Android 4300000000 при запуске эмулятора?
«Не удалось выполнить задачу ':react-native-gradle-plugin:compileKotlin'» при обновлении с 0.72.5 до 0.74.2