|
1 | | -plugins { |
2 | | - id "com.android.application" version "8.13.2" apply false |
3 | | - id "com.android.library" version "8.13.2" apply false |
4 | | - id "org.jetbrains.kotlin.android" version "2.2.21" apply false |
| 1 | +/** |
| 2 | + * Структура взята из шаблона React Native 0.87 (`@react-native-community/template`). |
| 3 | + * |
| 4 | + * Версии AGP, Kotlin и react-native-gradle-plugin здесь намеренно **не задаются**: |
| 5 | + * ими управляет сам RN через composite build |
| 6 | + * `includeBuild("../node_modules/@react-native/gradle-plugin")`. Прежний вариант |
| 7 | + * прибивал AGP гвоздями в блоке `plugins { id "com.android.application" version … }`, |
| 8 | + * и с RN 0.87 это ломало сборку: RNGP всё равно подтягивал свой AGP 9, а объявленная |
| 9 | + * версия игнорировалась — конфликт вылезал как «plugin is no longer required» и |
| 10 | + * «does not specify compileSdk». |
| 11 | + */ |
| 12 | +buildscript { |
| 13 | + ext { |
| 14 | + compileSdkVersion = 36 |
| 15 | + targetSdkVersion = 36 |
| 16 | + minSdkVersion = 24 |
5 | 17 |
|
6 | | - // Provided by includeBuild("../node_modules/@react-native/gradle-plugin") |
7 | | - id "com.facebook.react" apply false |
| 18 | + // Выровнено с шаблоном 0.87: более старые build-tools и NDK |
| 19 | + // AGP этой версии уже не обещает поддерживать. |
| 20 | + buildToolsVersion = "37.0.0" |
| 21 | + ndkVersion = "27.1.12297006" |
| 22 | + kotlinVersion = "2.2.0" |
| 23 | + } |
| 24 | + repositories { |
| 25 | + google() |
| 26 | + mavenCentral() |
| 27 | + } |
| 28 | + dependencies { |
| 29 | + classpath("com.android.tools.build:gradle") |
| 30 | + classpath("com.facebook.react:react-native-gradle-plugin") |
| 31 | + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") |
| 32 | + } |
8 | 33 | } |
9 | 34 |
|
10 | | -ext { |
11 | | - // Android SDK / Tools (AGP 8.13 supports API 36) :contentReference[oaicite:2]{index=2} |
12 | | - compileSdkVersion = 36 |
13 | | - targetSdkVersion = 36 |
14 | | - minSdkVersion = 24 |
15 | | - |
16 | | - // As per AGP compatibility defaults (can be installed via SDK Manager) :contentReference[oaicite:3]{index=3} |
17 | | - buildToolsVersion = "35.0.0" |
18 | | - ndkVersion = "27.0.12077973" |
19 | | -} |
| 35 | +apply plugin: "com.facebook.react.rootproject" |
20 | 36 |
|
21 | 37 | allprojects { |
22 | 38 | repositories { |
23 | 39 | google() |
24 | 40 | mavenCentral() |
25 | 41 | } |
26 | 42 | } |
| 43 | + |
| 44 | +allprojects { |
| 45 | + // AGP 9 требует, чтобы пространство имён было уникальным, а io.github.zhongwuzw |
| 46 | + // 2.4.0 отдаёт `com.tencent.mmkv` сразу из двух артефактов — mmkv и annotation, |
| 47 | + // из-за чего слияние манифестов падает. В 2.4.1 это разведено. |
| 48 | + // |
| 49 | + // Поднимается только нативный артефакт: npm-пакеты react-native-mmkv и |
| 50 | + // react-native-nitro-modules по решению владельца не трогаются вовсе. |
| 51 | + configurations.configureEach { |
| 52 | + resolutionStrategy { |
| 53 | + force "io.github.zhongwuzw:mmkv:2.4.1" |
| 54 | + } |
| 55 | + } |
| 56 | +} |
0 commit comments