diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index e11db5a..2976439 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -54,6 +54,19 @@ android { } else { signingConfigs.getByName("debug") } + // R8 lief bereits implizit (Standard-Verhalten des Flutter- + // Gradle-Plugins für Release-Builds) und zerstörte ohne + // proguard-rules.pro die Reflection-basierte Komponenten- + // Registrierung von ML Kit (mobile_scanner) – führte zu + // "NoSuchMethodException: ...Registrar. []" und in Folge + // zu NullPointerExceptions beim Scannen. Jetzt explizit mit + // passenden Keep-Regeln statt implizit ohne. + isMinifyEnabled = true + isShrinkResources = true + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) } } } diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro new file mode 100644 index 0000000..560f735 --- /dev/null +++ b/android/app/proguard-rules.pro @@ -0,0 +1,11 @@ +# ML Kit (mobile_scanner) registriert seine Komponenten zur Laufzeit per +# Reflection (No-Arg-Konstruktor). R8 entfernt/obfuskiert diese ohne Keep- +# Regeln, was zu "NoSuchMethodException: ...Registrar. []" und in +# Folge zu NullPointerExceptions beim eigentlichen Scan führt (siehe +# Kiosk-App v0.1.8/0.1.9-Debugging, echtes Tablet – nicht nur Hardware-Bug). +-keep class com.google.mlkit.** { *; } +-keep interface com.google.mlkit.** { *; } +-keep class com.google.android.gms.internal.mlkit_vision_barcode.** { *; } +-keep class * extends com.google.mlkit.common.internal.MlKitComponentDiscoveryService { + (); +} diff --git a/lib/app_version.dart b/lib/app_version.dart index 14fdacb..f0dd794 100644 --- a/lib/app_version.dart +++ b/lib/app_version.dart @@ -1,3 +1,3 @@ /// Manuell mit pubspec.yaml synchron halten (siehe timemaster-mobile, /// gleiche Konvention – kein package_info_plus während aktiver Feldtests). -const String kAppVersion = '0.1.8+9'; +const String kAppVersion = '0.1.10+11'; diff --git a/pubspec.yaml b/pubspec.yaml index 49b0614..7a9579c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: timemaster_kiosk description: TimeMaster Kiosk – Stempeluhr für Android-Tablets hinter VPN publish_to: 'none' -version: 0.1.8+9 +version: 0.1.10+11 environment: sdk: '>=3.3.0 <4.0.0'