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 reverts the upgrade to Android Studio 3.0 Beta 3 from commit
22ae3aa5b6 due to an upstream decision.
From the release updates: "Due to an issues with the Android Plugin for
Gradle in Beta 3 (64527520), we've pulled it down and recommend that you
not accept the update. If you already did, you can go back to Beta 2 by
downloading here." [0]
[0]: https://androidstudio.googleblog.com/2017/08/android-studio-30-beta-3-is-now.html
Added the `androidStudioPackages` attribute containing both
the `stable` and `preview` channels.
Changed the attribute `andorid-studio` to point to
`androidStudioPackages.stable`
Added the attribute `andorid-studio-preview` pointing to
`androidStudioPackages.preview`
I have tested this package using the new koltin support,
no issues found yet.
These changes are needed to be able to run the system emulator (QEMU)
from Android Studio. In addition to the added dependencies,
$LD_LIBRARY_PATH had to be changed from --set to --prefix, so that libGL
is found (on NixOS).
This commit fixes 2 main problems:
- Android Studio comes with its own package manager. The current
packaging approach doesn't allow such management. As a result the
package is unusable (see
https://github.com/NixOS/nixpkgs/issues/8650 and
https://github.com/NixOS/nixpkgs/issues/14903). In this version,
$ANDROID_HOME is _not_ set, allowing Android Studio to deal with the
Android SDK as it pleases (typically in $HOME/Android/Sdk).
- Android Studio downloads prebuilt binaries as part of the SDK. These
tools (e.g. `mksdcard`) have `/lib/ld-linux.so.2` set as the
interpreter. An FHS environment is used as a work around for that.