diff --git a/demo_app/android/build/reports/problems/problems-report.html b/demo_app/android/build/reports/problems/problems-report.html new file mode 100644 index 0000000..82f1995 --- /dev/null +++ b/demo_app/android/build/reports/problems/problems-report.html @@ -0,0 +1,663 @@ + + + + + + + + + + + + + Gradle Configuration Cache + + + +
+ +
+ Loading... +
+ + + + + + diff --git a/demo_app/flake.lock b/demo_app/flake.lock new file mode 100644 index 0000000..5b83b57 --- /dev/null +++ b/demo_app/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1760524057, + "narHash": "sha256-EVAqOteLBFmd7pKkb0+FIUyzTF61VKi7YmvP1tw4nEw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "544961dfcce86422ba200ed9a0b00dd4b1486ec5", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/demo_app/flake.nix b/demo_app/flake.nix new file mode 100644 index 0000000..44e9141 --- /dev/null +++ b/demo_app/flake.nix @@ -0,0 +1,44 @@ +{ +description = "Flutter 3.13.x"; +inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-utils.url = "github:numtide/flake-utils"; +}; +outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = import nixpkgs { + inherit system; + config = { + android_sdk.accept_license = true; + allowUnfree = true; + }; + }; + androidComposition = pkgs.androidenv.composeAndroidPackages { + buildToolsVersions = [ "35.0.0" ]; + platformVersions = [ "36" ]; + abiVersions = [ "x86_64" ]; + includeSystemImages = true; + systemImageTypes = [ "google_apis" ]; + includeEmulator = true; + includeNDK = true; + ndkVersions = [ "27.0.12077973" ]; + cmakeVersions = [ "3.22.1" ]; + }; + androidSdk = androidComposition.androidsdk; + in + { + devShell = + with pkgs; mkShell rec { + NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE = "1"; + ANDROID_HOME = "${androidSdk}/libexec/android-sdk"; + buildInputs = [ + flutter + pkg-config + androidSdk # The customized SDK that we've made above + androidComposition.emulator # The emulator component + jdk17 + ]; + }; + }); +} \ No newline at end of file diff --git a/demo_app/flake.nix.old b/demo_app/flake.nix.old new file mode 100644 index 0000000..c4ea431 --- /dev/null +++ b/demo_app/flake.nix.old @@ -0,0 +1,66 @@ +{ + description = "Flutter development environment with Android SDK on Nix."; + + inputs = { + flake-utils.url = "github:numtide/flake-utils"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + }; + + outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachSystem [ "x86_64-linux" ] (system: let + + pkgs = import nixpkgs { + inherit system; + config.allowUnfree = true; + config.android_sdk.accept_license = true; + }; + + # Define the composed Android SDK derivation + androidEnvComposition = pkgs.androidenv.composeAndroidPackages { + cmdLineToolsVersion = "latest"; + platformToolsVersion = "latest"; + buildToolsVersions = [ "34.0.0" ]; + platformVersions = [ "34" ]; + includeSystemImages = true; + systemImageTypes = [ "google_apis" ]; + includeEmulator = true; + }; + + # The actual SDK path derivation is the 'androidsdk' attribute + androidSdkPath = androidEnvComposition.androidsdk; + + in { + devShell = pkgs.mkShell { + + # --- Environment Variables --- + # ANDROID_HOME points to the root of the assembled SDK + ANDROID_HOME = "${androidSdkPath}"; + ANDROID_SDK_ROOT = "${androidSdkPath}"; + JAVA_HOME = "${pkgs.jdk17}"; + FLUTTER_ROOT = "${pkgs.flutter}"; + + # --- CORRECTED PATH DEFINITION --- + # Add the 'bin' directory which holds ALL the necessary tools (adb, sdkmanager, etc.) + PATH = [ + "${androidSdkPath}/bin" + "${androidEnvComposition.emulator}" # Keep the emulator path separate for the executable + ]; + + # --- Build Inputs --- + buildInputs = with pkgs; [ + flutter + jdk17 + androidSdkPath # The main SDK derivation + androidEnvComposition.emulator # The emulator component + ]; + + shellHook = '' + echo "Flutter and Android SDK environment is active." + # Explicitly set SDK paths again just before flutter doctor as a safeguard + export ANDROID_HOME="${androidSdkPath}" + export ANDROID_SDK_ROOT="${androidSdkPath}" + flutter doctor + ''; + }; + }); +} \ No newline at end of file diff --git a/demo_app/pubspec.yaml b/demo_app/pubspec.yaml index d62ec33..df26cd7 100644 --- a/demo_app/pubspec.yaml +++ b/demo_app/pubspec.yaml @@ -19,7 +19,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: ^3.9.2 + sdk: ^3.5.4 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions