Repository navigation
Expand file tree
/
Copy pathflake.nix
More file actions
59 lines (57 loc) · 1.72 KB
/
Copy pathflake.nix
File metadata and controls
59 lines (57 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
{
description = "Android development environment";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
outputs =
{ nixpkgs, ... }:
let
systems = [ "x86_64-linux" ];
forAllSystems = nixpkgs.lib.genAttrs systems;
in
{
devShells = forAllSystems (
system:
let
pkgs = import nixpkgs {
inherit system;
config = {
allowUnfree = true;
android_sdk.accept_license = true;
};
};
buildTools = "36.0.0";
android = pkgs.androidenv.composeAndroidPackages {
platformVersions = [ "29" "37.0" ];
buildToolsVersions = [ buildTools ];
includeEmulator = true;
includeSystemImages = true;
systemImageTypes = [ "google_apis" ];
abiVersions = [ "x86_64" ];
includeNDK = false;
};
sdk = "${android.androidsdk}/libexec/android-sdk";
in
{
default = pkgs.mkShell {
packages = [
android.androidsdk
pkgs.android-studio
pkgs.jdk25
pkgs.just
pkgs.jq
];
ANDROID_HOME = sdk;
ANDROID_SDK_ROOT = sdk;
JAVA_HOME = pkgs.jdk25.home;
# Maven's aapt2 is a generic Linux binary that fails on NixOS
GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${sdk}/build-tools/${buildTools}/aapt2";
# avdmanager writes to ~/.config/.android while emulator reads ~/.android
shellHook = ''
export ANDROID_AVD_HOME="$HOME/.android/avd"
'';
};
}
);
};
}