android-studio: set ANDROID_EMULATOR_USE_SYSTEM_LIBS

This change sets an environment variable to ensure that Android Studio
uses the correct drivers to avoid any breackage when trying to run a
native application on a virtual device.

Without proper configuration `android-studio` would be unable to load
the drivers for the AVD and yield messages like this:

```
3:32 PM	Executing tasks: [:app:assembleDebug]

3:32 PM	Emulator: libGL error: unable to load driver: i965_dri.so

3:32 PM	Emulator: libGL error: driver pointer missing

3:32 PM	Emulator: libGL error: failed to load driver: i965

3:32 PM	Emulator: libGL error: unable to load driver: i965_dri.so

3:32 PM	Emulator: libGL error: driver pointer missing

3:32 PM	Emulator: libGL error: failed to load driver: i965

3:32 PM	Emulator: libGL error: unable to load driver: swrast_dri.so

3:32 PM	Emulator: libGL error: failed to load driver: swrast

3:32 PM	Emulator: X Error of failed request:  BadValue (integer parameter out of range for operation)

3:32 PM	Emulator: Major opcode of failed request:  155 (GLX)

3:32 PM	Emulator: Minor opcode of failed request:  24 (X_GLXCreateNewContext)

3:32 PM	Emulator: Value in failed request:  0x0

3:32 PM	Emulator: Serial number of failed request:  64

3:32 PM	Emulator: Current serial number in output stream:  65

3:32 PM	Emulator: emulator: ERROR: Missing initial data partition file: /home/ma27/.android/avd/Nexus_5X_API_27.avd/userdata.img

3:32 PM	Emulator: Process finished with exit code 1

3:32 PM	Gradle build finished with 2 warnings(s) in 6s 378ms
```

For further reference have a look at the following StackOverflow
message: https://stackoverflow.com/a/40790339
This commit is contained in:
Maximilian Bosch 2018-01-09 01:21:48 +01:00
parent f345f35a54
commit 17dcd33e00
No known key found for this signature in database
GPG Key ID: 091DBF4D1FC46B8E

View File

@ -34,7 +34,7 @@
let
androidStudio = stdenv.mkDerivation {
name = "${pname}";
name = "${pname}-${version}";
src = fetchurl {
url = "https://dl.google.com/dl/android/studio/ide-zips/${version}/android-studio-ide-${build}-linux.zip";
@ -48,6 +48,7 @@ let
installPhase = ''
cp -r . $out
wrapProgram $out/bin/studio.sh \
--set ANDROID_EMULATOR_USE_SYSTEM_LIBS 1 \
--set PATH "${stdenv.lib.makeBinPath [
# Checked in studio.sh
@ -68,7 +69,6 @@ let
# Runtime stuff
git
]}" \
--prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [