devbox setup, dep upgrades, lint fixes, Android build fixes
- Add devbox.json pinning Flutter 3.35.7, Android SDK (Nix flake), openjdk17, just, openssl - Add android/nix-android-sdk/ Nix flake + flake.lock + Android Studio config script - Add justfile with build/get/upgrade/icons/analyze/rebuild recipes - flutter pub upgrade --major-versions: file_picker ^11, google_fonts ^8, permission_handler ^12, share_plus ^12, flutter_lints ^6 (+71 transitive) - Fix file_picker v11 API: FilePicker.platform → FilePicker.getDirectoryPath() - Fix all 37 analyzer issues: deprecated APIs (window, WillPopScope, Share, SvgPicture color), async BuildContext guards, key constructors, private createState() return types, unused locals, print → debugPrint, etc. - Hook _handleCommand into onSubmitted for : prefix commands - Android: Gradle 8.3→8.11.1, AGP 8.2.2→8.9.1, KGP 1.8.22→2.2.20, compileSdk/targetSdk 34→36, namespace auto-derivation for library modules, kotlin.compiler.execution.strategy=in-process Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
9dbd638fa8
commit
fc6c69db24
19 changed files with 1287 additions and 383 deletions
32
android/build.gradle
Normal file → Executable file
32
android/build.gradle
Normal file → Executable file
|
|
@ -7,10 +7,36 @@ allprojects {
|
|||
|
||||
rootProject.buildDir = "../build"
|
||||
subprojects {
|
||||
afterEvaluate { project ->
|
||||
if (project.hasProperty("android")) {
|
||||
project.android {
|
||||
compileSdkVersion 36
|
||||
}
|
||||
}
|
||||
}
|
||||
project.buildDir = "${rootProject.buildDir}/${project.name}"
|
||||
}
|
||||
subprojects {
|
||||
project.evaluationDependsOn(":app")
|
||||
project.evaluationDependsOn(':app')
|
||||
|
||||
plugins.withId('com.android.library') {
|
||||
extensions.configure(com.android.build.gradle.LibraryExtension) { android ->
|
||||
def manifestFile = android.sourceSets.main.manifest.srcFile
|
||||
def packageName = null
|
||||
if (manifestFile.exists()) {
|
||||
def manifestContent = new XmlParser().parse(file(manifestFile))
|
||||
packageName = manifestContent.@package
|
||||
}
|
||||
if (!android.hasProperty("namespace") || android.namespace == null || android.namespace.isEmpty()) {
|
||||
if (packageName) {
|
||||
println ">> Derived Namespace for: '${project.name}' to '${packageName}'"
|
||||
android.namespace = packageName
|
||||
} else {
|
||||
def defaultNamespace = "com.example.${project.name}"
|
||||
println "?? Made up Namespace for: '${project.name}' to '${defaultNamespace}'"
|
||||
android.namespace = defaultNamespace
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.register("clean", Delete) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue