diff --git a/android/app/build.gradle b/android/app/build.gradle deleted file mode 100644 index 7acf3e4f6..000000000 --- a/android/app/build.gradle +++ /dev/null @@ -1,110 +0,0 @@ -plugins { - id "com.android.application" - id "kotlin-android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -def keystorePropertiesFile = rootProject.file('key.properties') -def keystoreProperties = new Properties() -if (keystorePropertiesFile.exists()) { - keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) -} - -def _filePath = System.getenv("KEYSTORE") ?: keystoreProperties["storeFile"] -def _storeFile = _filePath != null ? file(_filePath) : null -def _storePassword = System.getenv("KEYSTORE_PASSWORD") ?: keystoreProperties["storePassword"] -def _keyAlias = System.getenv("KEY_ALIAS") ?: keystoreProperties["keyAlias"] -def _keyPassword = System.getenv("KEY_PASSWORD") ?: keystoreProperties["keyPassword"] - -android { - compileSdkVersion flutter.compileSdkVersion - - namespace 'com.example.piliplus' - ndkVersion flutter.ndkVersion - - compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 - } - - kotlinOptions { - jvmTarget = '17' - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - - defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.example.piliplus" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - minSdkVersion flutter.minSdkVersion - multiDexEnabled true - } - - signingConfigs { - // 添加签名配置 - if(_storeFile != null) { - release { - // 配置密钥库文件的位置、别名、密码等信息 - storeFile _storeFile - storePassword _storePassword - keyAlias _keyAlias - keyPassword _keyPassword - v1SigningEnabled true - v2SigningEnabled true - } - } - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig _storeFile != null ? signingConfigs.release : signingConfigs.debug - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - debug { - applicationIdSuffix ".debug" - } - } - - project.android.applicationVariants.all { variant -> - variant.outputs.each { output -> - output.versionCodeOverride = variant.versionCode - } - } -} - -flutter { - source '../..' -} - -dependencies { -} diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts new file mode 100644 index 000000000..614eda7dd --- /dev/null +++ b/android/app/build.gradle.kts @@ -0,0 +1,75 @@ +import com.android.build.gradle.internal.api.ApkVariantOutputImpl +import org.jetbrains.kotlin.konan.properties.Properties + +plugins { + id("com.android.application") + id("kotlin-android") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "com.example.piliplus" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "com.example.piliplus" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + val keyProperties = Properties().also { + val properties = rootProject.file("key.properties") + if (properties.exists()) + it.load(properties.inputStream()) + } + + val config = keyProperties.getProperty("storeFile")?.let { + signingConfigs.create("release") { + storeFile = file(it) + storePassword = keyProperties.getProperty("storePassword") + keyAlias = keyProperties.getProperty("keyAlias") + keyPassword = keyProperties.getProperty("keyPassword") + enableV1Signing = true + enableV2Signing = true + } + } + + buildTypes { + all { + signingConfig = config ?: signingConfigs["debug"] + } + release { + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + debug { + applicationIdSuffix = ".debug" + } + } + + applicationVariants.all { + val variant = this + variant.outputs.forEach { output -> + (output as ApkVariantOutputImpl).versionCodeOverride = flutter.versionCode + } + } +} + +flutter { + source = "../.." +} diff --git a/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png deleted file mode 100644 index 5c2c8a38e..000000000 Binary files a/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_launcher_monochrome.png b/android/app/src/main/res/drawable-hdpi/ic_launcher_monochrome.png deleted file mode 100644 index 5c2c8a38e..000000000 Binary files a/android/app/src/main/res/drawable-hdpi/ic_launcher_monochrome.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png deleted file mode 100644 index b22aad157..000000000 Binary files a/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_launcher_monochrome.png b/android/app/src/main/res/drawable-mdpi/ic_launcher_monochrome.png deleted file mode 100644 index b22aad157..000000000 Binary files a/android/app/src/main/res/drawable-mdpi/ic_launcher_monochrome.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png deleted file mode 100644 index 8e27ada1f..000000000 Binary files a/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/drawable-xhdpi/ic_launcher_monochrome.png deleted file mode 100644 index 8e27ada1f..000000000 Binary files a/android/app/src/main/res/drawable-xhdpi/ic_launcher_monochrome.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png deleted file mode 100644 index 5c48a897f..000000000 Binary files a/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_monochrome.png deleted file mode 100644 index 5c48a897f..000000000 Binary files a/android/app/src/main/res/drawable-xxhdpi/ic_launcher_monochrome.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png deleted file mode 100644 index 7dc8ad1e5..000000000 Binary files a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_monochrome.png deleted file mode 100644 index 7dc8ad1e5..000000000 Binary files a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_monochrome.png and /dev/null differ diff --git a/android/build.gradle b/android/build.gradle deleted file mode 100644 index 4729d3db0..000000000 --- a/android/build.gradle +++ /dev/null @@ -1,59 +0,0 @@ -allprojects { - repositories { - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - afterEvaluate { project -> - if (project.hasProperty('android')) { - project.android { - if (namespace == null) { - namespace project.group - } - } - - android { - compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 - } - - tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { - kotlinOptions { - jvmTarget = '17' - } - } - } - - Integer pluginCompileSdk = project.android.compileSdk - if (pluginCompileSdk != null) { - if (pluginCompileSdk < 31) { - project.logger.error( - "Warning: Overriding compileSdk version in Flutter plugin: " - + project.name - + " from " - + pluginCompileSdk - + " to 31 (to work around https://issuetracker.google.com/issues/199180389)." - + "\nIf there is not a new version of " + project.name + ", consider filing an issue against " - + project.name - + " to increase their compileSdk to the latest (otherwise try updating to the latest version)." - ) - project.android { - compileSdk 31 - } - } - } - } - } - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/android/build.gradle.kts b/android/build.gradle.kts new file mode 100644 index 000000000..eaa8e9780 --- /dev/null +++ b/android/build.gradle.kts @@ -0,0 +1,67 @@ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +allprojects { + repositories { + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} + +subprojects { + afterEvaluate { + if (project.extensions.findByName("android") != null) { + val androidExtension = + project.extensions.getByName("android") as com.android.build.gradle.BaseExtension + + if (androidExtension.namespace == null) { + androidExtension.namespace = project.group.toString() + } + + androidExtension.compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + project.tasks.withType().configureEach { + kotlinOptions { + jvmTarget = "17" + } + } + + val pluginCompileSdkStr = androidExtension.compileSdkVersion + val pluginCompileSdk = pluginCompileSdkStr + ?.removePrefix("android-") + ?.toIntOrNull() + if (pluginCompileSdk != null && pluginCompileSdk < 31) { + project.logger.error( + "Warning: Overriding compileSdk version in Flutter plugin: ${project.name} " + + "from $pluginCompileSdk to 31 (to work around https://issuetracker.google.com/issues/199180389).\n" + + "If there is not a new version of ${project.name}, consider filing an issue against ${project.name} " + + "to increase their compileSdk to the latest (otherwise try updating to the latest version)." + ) + androidExtension.setCompileSdkVersion(31) + } + } + + project.buildDir = File(rootProject.buildDir, project.name) + } +} + +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 92c1ac1bd..ac3b47926 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip -networkTimeout=10000 -validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists \ No newline at end of file +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip diff --git a/android/settings.gradle b/android/settings.gradle deleted file mode 100644 index 745cfa379..000000000 --- a/android/settings.gradle +++ /dev/null @@ -1,25 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version '8.4.1' apply false - id "org.jetbrains.kotlin.android" version "1.9.22" apply false -} - -include ":app" \ No newline at end of file diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts new file mode 100644 index 000000000..fb605bc84 --- /dev/null +++ b/android/settings.gradle.kts @@ -0,0 +1,26 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.9.1" apply false + id("org.jetbrains.kotlin.android") version "2.1.0" apply false +} + +include(":app")