123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- apply plugin: 'com.android.application'
- android {
- compileSdkVersion 29
- sourceSets {
- main {
- manifest.srcFile 'AndroidManifest.xml'
- java.srcDirs = ['src/main/java']
- aidl.srcDirs = ['src/main/java']
- renderscript.srcDirs = ['src/main/java']
- res.srcDirs = ['res']
- assets.srcDirs = ['../assets']
- jniLibs.srcDirs = ['libs']
- }
- }
- packagingOptions {
- // Preventing from license violations (more or less):
- pickFirst 'META-INF/LICENSE.txt'
- pickFirst 'META-INF/LICENSE'
- pickFirst 'META-INF/license.txt'
- pickFirst 'META-INF/LGPL2.1'
- pickFirst 'META-INF/NOTICE.txt'
- pickFirst 'META-INF/NOTICE'
- pickFirst 'META-INF/notice.txt'
- // Excluding unnecessary meta-data:
- exclude 'META-INF/robovm/ios/robovm.xml'
- exclude 'META-INF/DEPENDENCIES.txt'
- exclude 'META-INF/DEPENDENCIES'
- exclude 'META-INF/dependencies.txt'
- }
- defaultConfig {
- applicationId 'com.example.packagename'
- minSdkVersion 19
- targetSdkVersion 29
- versionCode 1
- versionName "1.0"
- multiDexEnabled true
- }
- compileOptions {
- sourceCompatibility "8.0"
- targetCompatibility "8.0"
- coreLibraryDesugaringEnabled true
- }
-
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- }
- }
- repositories {
- // needed for AAPT2, may be needed for other tools
- google()
- }
- configurations { natives }
- dependencies {
- coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.10'
- implementation project(':core')
- implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
- natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
- natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
- natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
- natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
- }
- // Called every time gradle gets executed, takes the native dependencies of
- // the natives configuration, and extracts them to the proper libs/ folders
- // so they get packed with the APK.
- task copyAndroidNatives() {
- doFirst {
- file("libs/armeabi/").mkdirs()
- file("libs/armeabi-v7a/").mkdirs()
- file("libs/arm64-v8a/").mkdirs()
- file("libs/x86_64/").mkdirs()
- file("libs/x86/").mkdirs()
-
- configurations.getByName("natives").copy().files.each { jar ->
- def outputDir = null
- if(jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
- if(jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
- if(jar.name.endsWith("natives-armeabi.jar")) outputDir = file("libs/armeabi")
- if(jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
- if(jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
- if(outputDir != null) {
- copy {
- from zipTree(jar)
- into outputDir
- include "*.so"
- }
- }
- }
- }
- }
- tasks.whenTaskAdded { packageTask ->
- if (packageTask.name.contains("package")) {
- packageTask.dependsOn 'copyAndroidNatives'
- }
- }
- task run(type: Exec) {
- def path
- def localProperties = project.file("../local.properties")
- if (localProperties.exists()) {
- Properties properties = new Properties()
- localProperties.withInputStream { instr ->
- properties.load(instr)
- }
- def sdkDir = properties.getProperty('sdk.dir')
- if (sdkDir) {
- path = sdkDir
- } else {
- path = "$System.env.ANDROID_HOME"
- }
- } else {
- path = "$System.env.ANDROID_HOME"
- }
- def adb = path + "/platform-tools/adb"
- commandLine "$adb", 'shell', 'am', 'start', '-n', 'com.example.packagename/com.example.packagename.AndroidLauncher'
- }
- eclipse.project.name = appName + "-android"
|