as-app/android/build.gradle

92 lines
4 KiB
Groovy

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext {
// @generated begin expo-gradle-ext-vars - expo prebuild (DO NOT MODIFY) sync-a14167d3df9d6380c3d77a8f8070215ea8a94013
googlePlayServicesLocationVersion = "21.1.0"
appCompatVersion = "1.4.2"
// @generated end expo-gradle-ext-vars
// buildToolsVersion = findProperty('android.buildToolsVersion') ?: '34.0.0'
minSdkVersion = Integer.parseInt(findProperty('android.minSdkVersion') ?: '24')
compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '35')
targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '35')
kotlinVersion = findProperty('android.kotlinVersion') ?: '2.0.21'
ndkVersion = "27.2.12479018"
}
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.google.gms:google-services:4.4.1'
classpath('com.android.tools.build:gradle:8.6.0')
classpath('com.facebook.react:react-native-gradle-plugin')
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")
}
}
apply plugin: "com.facebook.react.rootproject"
allprojects {
repositories {
// @generated begin react-native-background-fetch-maven - expo prebuild (DO NOT MODIFY) sync-b86324ce2eb77b03cc8b69ba206ef8275cd006ff
maven { url "${project(":react-native-background-fetch").projectDir}/libs" }
// @generated begin react-native-background-geolocation-maven - expo prebuild (DO NOT MODIFY) sync-4b2bae87fd8579c445d8885f6bdc8542d9d0bbca
maven { url "${project(":react-native-background-geolocation").projectDir}/libs" }
maven { url 'https://developer.huawei.com/repo/' }
// @generated end react-native-background-geolocation-maven
// @generated end react-native-background-fetch-maven
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url(new File(['node', '--print', "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), '../android'))
}
maven {
// Android JSC is installed from npm
url(new File(['node', '--print', "require.resolve('jsc-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), '../dist'))
}
google()
mavenCentral()
maven { url 'https://www.jitpack.io' }
maven {
url "$rootDir/../node_modules/@notifee/react-native/android/libs"
}
// https://github.com/Lyokone/flutterlocation/issues/802#issuecomment-1415980821
// configurations.all {
// resolutionStrategy {
// force "com.google.android.gms:play-services-location:21.0.1"
// }
// }
maven {
url("$rootDir/../node_modules/detox/Detox-android")
}
}
}
/**
* Force 16KB page size at link time for all subprojects that build native code with CMake.
* Use projectsEvaluated to avoid afterEvaluate on already-evaluated projects.
*/
gradle.projectsEvaluated {
subprojects { proj ->
def androidExt = proj.extensions.findByName("android")
if (androidExt != null &&
androidExt.hasProperty("externalNativeBuild") &&
androidExt.externalNativeBuild?.cmake != null) {
try {
def flag = "-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384"
def args = androidExt.externalNativeBuild.cmake.arguments
if (args == null || args.isEmpty()) {
androidExt.externalNativeBuild.cmake.arguments = [flag]
} else if (!args.contains(flag)) {
androidExt.externalNativeBuild.cmake.arguments += flag
}
} catch (Throwable ignored) {
// ignore if structure differs for a subproject
}
}
}
}