apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' androidExtensions { experimental = true } static def releaseTime() { return new Date().format("yy.MMddHH", TimeZone.getTimeZone("GMT+8")) } def name = "legado" def version = "0." + releaseTime() def gitCommits = Integer.parseInt('git rev-list --count HEAD'.execute([], project.rootDir).text.trim()) android { compileSdkVersion 28 signingConfigs { myConfig { storeFile file(RELEASE_STORE_FILE) storePassword RELEASE_STORE_PASSWORD keyAlias RELEASE_KEY_ALIAS keyPassword RELEASE_KEY_PASSWORD v1SigningEnabled true v2SigningEnabled true } } defaultConfig { applicationId "io.legado.app" minSdkVersion 21 targetSdkVersion 28 versionCode gitCommits versionName version testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" project.ext.set("archivesBaseName", name + "_" + version) } buildTypes { release { signingConfig signingConfigs.myConfig minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } debug { signingConfig signingConfigs.myConfig applicationIdSuffix '.debug' versionNameSuffix 'debug' minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } android.applicationVariants.all { variant -> variant.outputs.all { outputFileName = "${name}_${defaultConfig.versionName}.apk" } } } compileOptions { sourceCompatibility = '1.8' targetCompatibility = '1.8' } } kapt { arguments { arg("room.schemaLocation", "$projectDir/schemas") } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' //kotlin implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" //androidX implementation 'androidx.core:core-ktx:1.2.0-alpha03' implementation 'androidx.appcompat:appcompat:1.1.0-rc01' implementation 'androidx.preference:preference:1.1.0-rc01' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0' implementation 'androidx.media:media:1.1.0-rc01' implementation 'com.google.android.material:material:1.1.0-alpha09' implementation 'com.google.android:flexbox:1.1.0' //lifecycle def lifecycle_version = '2.0.0' implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version" kapt "androidx.lifecycle:lifecycle-compiler:$lifecycle_version" //room def room_version = '2.1.0' implementation "androidx.room:room-runtime:$room_version" kapt "androidx.room:room-compiler:$room_version" //paging implementation 'androidx.paging:paging-runtime:2.1.0' //anko def anko_version = '0.10.8' implementation "org.jetbrains.anko:anko-sdk27:$anko_version" implementation "org.jetbrains.anko:anko-sdk27-listeners:$anko_version" //liveEventBus implementation 'com.jeremyliao:live-event-bus-x:1.4.5' //协程 def coroutines_version = '1.2.2' implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version" //规则相关 implementation 'com.google.code.gson:gson:2.8.5' implementation 'org.jsoup:jsoup:1.12.1' implementation 'cn.wanghaomiao:JsoupXpath:2.3.2' implementation 'com.jayway.jsonpath:json-path:2.4.0' //JS implementation 'com.github.gedoor:rhino-android:1.3' //Retrofit implementation 'com.squareup.okhttp3:logging-interceptor:3.14.0' implementation 'com.squareup.retrofit2:retrofit:2.6.0' //Glide implementation 'com.github.bumptech.glide:glide:4.9.0' //二维码 implementation 'cn.bingoogolapple:bga-qrcode-zxing:1.3.6' //颜色选择 implementation 'com.jaredrummler:colorpicker:1.1.0' }