plugins { id "com.android.application" id "com.jakewharton.butterknife" id "kotlin-android" id "kotlin-kapt" } def annotationsVer = "4.8.0" def butterKnifeVer = "10.2.3" def leakcanaryVer = "2.7" def properties = new Properties() def propFile = new File("sign.properties") def isPropFileExists = propFile.exists() isPropFileExists && properties.load(new FileInputStream(propFile)) tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { kotlinOptions { jvmTarget = JavaVersion.VERSION_16 } } // tasks.withType(JavaCompile) { // options.compilerArgs << "-Xlint:deprecation" << "-Xlint:unchecked" // } android { signingConfigs { isPropFileExists && release { storeFile file(properties["storeFile"]) keyPassword properties["keyPassword"] keyAlias properties["keyAlias"] storePassword properties["storePassword"] } } compileSdkVersion versions.compile defaultConfig { applicationId "org.autojs.autojs" minSdkVersion versions.mini targetSdkVersion versions.target versionCode versions.appVersionCode versionName versions.appVersionName testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled true javaCompileOptions { annotationProcessorOptions { arguments = [ "resourcePackageName": applicationId, "androidManifestFile": "$projectDir/src/main/AndroidManifest.xml".toString() ] } } } buildTypes { debug { shrinkResources false minifyEnabled false proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" if (isPropFileExists) { signingConfig signingConfigs.release } // Disable Crashlytics reports. ext.enableCrashlytics = false // Disables PNG crunching for the release build type. crunchPngs false } release { shrinkResources false minifyEnabled false proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" if (isPropFileExists) { signingConfig signingConfigs.release } } } compileOptions { sourceCompatibility JavaVersion.VERSION_16 targetCompatibility JavaVersion.VERSION_16 encoding = "utf-8" } lintOptions { abortOnError false disable "MissingTranslation" disable "ExtraTranslation" } configurations.all { resolutionStrategy.force "com.google.code.findbugs:jsr305:3.0.1" } flavorDimensions "channel" splits { // Configures multiple APKs based on ABI. abi { // Enables building multiple APKs per ABI. enable true // By default all ABIs are included, so use reset() and include to specify that we only // want APKs for x86 and x86_64. // Resets the list of ABIs that Gradle should create APKs for to none. reset() // Specifies a list of ABIs that Gradle should create APKs for. include "armeabi-v7a" // Specifies that we do not want to also generate a universal APK that includes all ABIs. universalApk false } } productFlavors { common { buildConfigField "String", "CHANNEL", "\"common\"" buildConfigField "String", "APP_SINCE_DATE", "\"${versions.appSinceDate}\"" } } applicationVariants.all { variant -> variant.mergeAssetsProvider.configure { doLast { delete(fileTree(dir: outputDir, includes: ["declarations/**"])) } } } } repositories { google() } dependencies { // JUnit testImplementation "junit:junit:${junitVer}" // LeakCanary debugImplementation "com.squareup.leakcanary:leakcanary-android:${leakcanaryVer}" // Kotlin implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0-native-mt" // Android Annotations kapt "org.androidannotations:androidannotations:${annotationsVer}" implementation "org.androidannotations:androidannotations-api:${annotationsVer}" // ButterKnife kapt "com.jakewharton:butterknife-compiler:${butterKnifeVer}" implementation "com.jakewharton:butterknife:${butterKnifeVer}" // Android supports implementation "androidx.appcompat:appcompat:1.4.0" implementation "androidx.cardview:cardview:1.0.0" implementation "com.google.android.material:material:1.6.0-alpha01" implementation "androidx.multidex:multidex:2.0.1" // Material Dialogs implementation "com.afollestad.material-dialogs:core:0.9.6.0" // SwipeRefreshLayout implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" // Common Markdown implementation "com.github.atlassian:commonmark-java:commonmark-parent-0.9.0" // Android issue reporter (a github issue reporter) implementation "com.heinrichreimersoftware:android-issue-reporter:1.3.1" // MultiLevelListView implementation "com.github.hyb1996:android-multi-level-listview:1.1" // Licenses Dialog implementation "de.psdev.licensesdialog:licensesdialog:2.2.0" // Expandable RecyclerView implementation "com.bignerdranch.android:expandablerecyclerview:3.0.0-RC1" // FlexibleDivider implementation "com.yqritc:recyclerview-flexibledivider:1.4.0" // AVLoadingView implementation "com.wang.avi:library:2.1.3" // Commons Lang implementation "org.apache.commons:commons-lang3:3.12.0" // Expandable RecyclerView implementation "com.thoughtbot:expandablerecyclerview:1.3" implementation "com.github.hyb1996:Auto.js-ApkBuilder:1.0.1" // RxJava implementation "io.reactivex.rxjava2:rxjava:2.2.21" implementation "io.reactivex.rxjava2:rxandroid:2.1.1" // Retrofit implementation "com.squareup.retrofit2:retrofit:2.9.0" implementation "com.squareup.retrofit2:converter-gson:2.9.0" implementation "com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0" implementation "com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2" // Glide kapt "com.github.bumptech.glide:compiler:4.12.0" implementation "com.github.bumptech.glide:glide:4.12.0" // Joda Time implementation "joda-time:joda-time:2.10.13" // Tasker Plugin implementation "com.twofortyfouram:android-plugin-client-sdk-for-locale:4.0.3" // Flurry implementation "com.flurry.android:analytics:13.1.0" // Material Dialogs implementation "com.afollestad.material-dialogs:commons:0.9.6.0" // Android Job implementation "com.evernote:android-job:1.4.2" // Extracted from com.github.hyb1996:MutableTheme:1.0.0 implementation "com.jrummyapps:colorpicker:2.1.7" implementation "androidx.recyclerview:recyclerview:1.2.1" implementation "com.github.ozodrukh:CircularReveal:2.0.1" // Bugly implementation project(":libs:com.tencent.bugly.crashreport-2.6.6") implementation project(":automator") implementation project(":common") implementation project(":autojs") } java { sourceCompatibility = JavaVersion.VERSION_16 targetCompatibility = JavaVersion.VERSION_16 }