import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform plugins { id 'com.android.application' } android { compileSdkVersion 33 defaultConfig { namespace 'btools.routingapp' applicationId "btools.routingapp" versionCode 50 versionName project.version resValue('string', 'app_version', defaultConfig.versionName) setProperty("archivesBaseName", "BRouterApp." + defaultConfig.versionName) minSdkVersion 14 targetSdkVersion 33 resConfigs "en" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } sourceSets.main.assets.srcDirs += new File(project.buildDir, 'assets') if (project.hasProperty("RELEASE_STORE_FILE") && RELEASE_STORE_FILE.length() > 0) { signingConfigs { // this uses a file ~/.gradle/gradle.properties // with content: // RELEASE_STORE_FILE={path to your keystore} // RELEASE_STORE_PASSWORD=***** // RELEASE_KEY_ALIAS=***** // RELEASE_KEY_PASSWORD=***** // release { // enable signingConfig in buildTypes to get a signed apk file storeFile file(RELEASE_STORE_FILE) storePassword RELEASE_STORE_PASSWORD keyAlias RELEASE_KEY_ALIAS keyPassword RELEASE_KEY_PASSWORD // Optional, specify signing versions used v1SigningEnabled true v2SigningEnabled true } } } buildTypes { release { minifyEnabled false debuggable false if (project.hasProperty("RELEASE_STORE_FILE") && RELEASE_STORE_FILE.length() > 0) { signingConfig signingConfigs.release } proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } debug { minifyEnabled false debuggable true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } lintOptions { disable 'InvalidPackage' checkReleaseBuilds false //added this line to the build.gradle under the /android/app/build.gradle } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } applicationVariants.all { variant -> { tasks["merge${variant.name.capitalize()}Assets"].dependsOn(generateProfilesZip) tasks["merge${variant.name.capitalize()}Assets"].dependsOn(generateReadmesZip) } } } dependencies { implementation 'androidx.appcompat:appcompat:1.6.1' implementation "androidx.constraintlayout:constraintlayout:2.1.4" implementation 'androidx.work:work-runtime:2.8.1' implementation 'com.google.android.material:material:1.8.0' implementation project(':brouter-mapaccess') implementation project(':brouter-core') implementation project(':brouter-expressions') implementation project(':brouter-util') implementation 'androidx.preference:preference:1.2.0' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' androidTestImplementation 'androidx.work:work-testing:2.8.1' } gradle.projectsEvaluated { preBuild.dependsOn(generateProfilesZip, generateReadmesZip) } check.dependsOn 'checkstyle' task checkstyle(type: Checkstyle) { source 'src' include '**/*.java' exclude '**/gen/**' classpath = files() } task generateProfiles(type: Exec) { commandLine = "../misc/scripts/generate_profile_variants.sh" } task generateProfilesZip(type: Zip) { if (DefaultNativePlatform.getCurrentOperatingSystem().isWindows()) { logger.warn("Note: On Windows run script '../misc/scripts/generate_profile_variants.sh' manually to include all profiles") } else { dependsOn generateProfiles } archiveFileName = "profiles2.zip" from("../misc/profiles2") { exclude "all.brf" exclude "car-traffic_analysis.brf" exclude "car-vario.brf" exclude "softaccess.brf" } destinationDirectory = layout.buildDirectory.dir("assets") } task generateReadmesZip(type: Zip) { archiveFileName = "readmes.zip" from("../docs") { include("users/android_quickstart.md") include("users/android_advanced.md") include("developers/profile_developers_guide.md") include("developers/build_segments.md") include("privacy_policy.md") } destinationDirectory = layout.buildDirectory.dir("assets") }