Сборка завершается с ошибкой после понижения minSdkVersion до 22 — у пользователя есть minSdkVersion 22, но библиотека бAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Сборка завершается с ошибкой после понижения minSdkVersion до 22 — у пользователя есть minSdkVersion 22, но библиотека б

Сообщение Anonymous »

У меня есть проект React Native, который должен поддерживать minSdkVersion 22. Я изменил Android minSdkVersion на 22 в своем приложении, но сборка Gradle не удалась, жалуясь, что собственная библиотека ReactAndroid (hermestooling) была создана для SDK 24.
Что я сделал (команды, которые я выполнил)
Из папки Android я запустил:

Код: Выделить всё

gradlew clean
gradlew assembleRelease
Полный вывод соответствующих ошибок (скопирован с моей консоли):

Код: Выделить всё

C:\versapos\VersaPOS\android>gradlew assembleRelease

> Task :app:configureCMakeRelWithDebInfo[arm64-v8a]
C/C++: C:\versapos\VersaPOS\node_modules\react-native\ReactAndroid\cmake-utils\default-app-setup\CMakeLists.txt release|arm64-v8a : com.google.prefab.api.NoMatchingLibraryException: No compatible library found for //ReactAndroid/hermestooling.  Rejected the following libraries:

> Task :app:configureCMakeRelWithDebInfo[arm64-v8a] FAILED

[Incubating] Problems report is available at: file:///C:/versapos/VersaPOS/android/build/reports/problems/problems-report.html

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:configureCMakeRelWithDebInfo[arm64-v8a]'.
>  [CXX1214] C:\versapos\VersaPOS\node_modules\react-native\ReactAndroid\cmake-utils\default-app-setup\CMakeLists.txt release|arm64-v8a : User has minSdkVersion 22 but library was built for 24 [//ReactAndroid/hermestooling]

BUILD FAILED in 12s
24 actionable tasks: 14 executed, 10 up-to-date

Что я изменил/пробовал на данный момент
  • Я явно понизил minSdkVersion до 22 в android/build.gradle.

    Код: Выделить всё

    buildscript {
    ext {
    buildToolsVersion = "36.0.0"
    minSdkVersion = 22   //prev 24
    compileSdkVersion = 36
    targetSdkVersion = 36
    ndkVersion = "27.1.12297006"
    kotlinVersion = "2.1.20"
    }
    repositories {
    google()
    mavenCentral()
    }
    dependencies {
    classpath("com.android.tools.build:gradle")
    classpath("com.facebook.react:react-native-gradle-plugin")
    classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
    }
    }
    apply plugin: "com.facebook.react.rootproject
    ```
    
    
  • Я запустил gradlew clean, а затем gradlew assembleRelease.
package.json:

Код: Выделить всё

{
"name": "VersaPOS",
"version": "0.0.1",
"private": true,
"scripts": {
"android": "react-native run-android",
"ios": "react-native run-ios",
"lint": "eslint .",
"start": "react-native start",
"test": "jest"
},
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.7.2",
"@fortawesome/free-brands-svg-icons": "^7.0.1",
"@fortawesome/free-regular-svg-icons": "^7.0.1",
"@fortawesome/free-solid-svg-icons": "^7.0.1",
"@fortawesome/react-native-fontawesome": "^0.3.2",
"@react-native-async-storage/async-storage": "^2.2.0",
"@react-native/new-app-screen": "0.81.1",
"@react-navigation/native": "^7.1.17",
"@react-navigation/stack": "^7.4.8",
"axios": "^1.12.2",
"react": "19.1.0",
"react-native": "^0.81.1",
"react-native-gesture-handler": "^2.28.0",
"react-native-linear-gradient": "^2.8.3",
"react-native-safe-area-context": "^5.6.1",
"react-native-screens": "^4.16.0",
"react-native-svg": "^15.13.0"
},
"devDependencies": {
"@babel/core": "^7.25.2",
"@babel/preset-env": "^7.25.3",
"@babel/runtime": "^7.25.0",
"@react-native-community/cli": "latest",
"@react-native-community/cli-platform-android": "latest",
"@react-native-community/cli-platform-ios": "latest",
"@react-native/babel-preset": "0.81.1",
"@react-native/eslint-config": "0.81.1",
"@react-native/metro-config": "0.81.1",
"@react-native/typescript-config": "0.81.1",
"@types/jest": "^29.5.13",
"@types/react": "^19.1.0",
"@types/react-test-renderer": "^19.1.0",
"eslint": "^8.19.0",
"jest": "^29.6.3",
"prettier": "2.8.8",
"react-test-renderer": "19.1.0",
"typescript": "^5.8.3"
},
"engines": {
"node": ">=20"
}
}

  • Проект представляет собой простую сборку React Native Android (CLI, а не Expo).
Чего я хочу/вопросы
Как я могу создать сборку проекта, сохраняя minSdkVersion = 22?
Заранее спасибо — любые указания о том, как пересобрать или настроить собственные библиотеки для работы с ними minSdk 22 или альтернативы для продолжения поддержки API 22 будут приветствоваться.

Подробнее здесь: https://stackoverflow.com/questions/798 ... n-22-but-l
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»