[IMP] todo qemu: let Android Studio find the SDK the build already installed
install-android.sh writes its exports into ~/.bashrc, which a GNOME session never reads: Android Studio launched from the menu saw no ANDROID_HOME and offered to download a second SDK, next to the one the mobile build had just installed. environment.d is the channel the user session actually reads, so both point at $HOME/android. An empty ~/.android/repositories.cfg is created too — without it the first-run wizard stops on an error instead of offering anything. --- FR --- install-android.sh écrit ses exports dans ~/.bashrc, qu'une session GNOME ne lit jamais : Android Studio lancé depuis le menu ne voyait aucun ANDROID_HOME et proposait de télécharger un second SDK, à côté de celui que la compilation mobile venait de poser. environment.d est le canal que la session utilisateur lit vraiment, et les deux pointent désormais $HOME/android. Un ~/.android/repositories.cfg vide est créé au passage : sans lui, l'assistant de première ouverture s'arrête sur une erreur au lieu de proposer quoi que ce soit. Assisted-by: Claude Opus 5
This commit is contained in:
parent
5150cfde9c
commit
1da54d0ba5
3 changed files with 47 additions and 1 deletions
|
|
@ -5452,8 +5452,22 @@ class TODO:
|
|||
"/opt/android-studio/bin/studio.svg",
|
||||
"Development;IDE;",
|
||||
)
|
||||
+
|
||||
# Le SDK partagé, vu depuis la SESSION graphique. install-android.sh
|
||||
# écrit ses exports dans ~/.bashrc, que GNOME ne lit pas : Android
|
||||
# Studio lancé depuis le menu ne verrait donc pas le SDK et
|
||||
# proposerait d'en télécharger un second. environment.d est le
|
||||
# canal que la session utilisateur lit vraiment.
|
||||
"mkdir -p ~/.config/environment.d && "
|
||||
"printf 'ANDROID_HOME=%s/android\\nANDROID_SDK_ROOT=%s/android\\n'"
|
||||
' "$HOME" "$HOME" '
|
||||
"> ~/.config/environment.d/10-erplibre-android.conf; "
|
||||
# repositories.cfg absent, et l'assistant de première ouverture
|
||||
# s'arrête sur une erreur au lieu de proposer quoi que ce soit.
|
||||
"mkdir -p ~/.android && touch ~/.android/repositories.cfg; "
|
||||
+ f'echo " {t("Android Studio installed:")} /opt/android-studio '
|
||||
f'({t("command")} studio / android-studio)"; '
|
||||
f'echo " {t("SDK shared through ANDROID_HOME:")} $HOME/android"; '
|
||||
"grep -q vmx /proc/cpuinfo 2>/dev/null "
|
||||
"|| grep -q svm /proc/cpuinfo 2>/dev/null "
|
||||
f'|| echo " {t("no nested KVM: the emulator will not run")}"; '
|
||||
|
|
@ -6267,7 +6281,24 @@ class TODO:
|
|||
# plutôt que d'écrêter, contrairement au multiplicateur x1..x4 qui, lui,
|
||||
# est un calcul automatique et se borne aux cœurs de l'hôte.
|
||||
_QEMU_CPU_PRESETS = (
|
||||
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 24, 32
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
16,
|
||||
24,
|
||||
32,
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
|
|
|
|||
|
|
@ -7627,6 +7627,10 @@ TRANSLATIONS = {
|
|||
"fr": "Android Studio : Google ne publie que du x86_64",
|
||||
"en": "Android Studio: Google publishes x86_64 only",
|
||||
},
|
||||
"SDK shared through ANDROID_HOME:": {
|
||||
"fr": "SDK partagé via ANDROID_HOME :",
|
||||
"en": "SDK shared through ANDROID_HOME:",
|
||||
},
|
||||
"Android Studio installed:": {
|
||||
"fr": "Android Studio installé :",
|
||||
"en": "Android Studio installed:",
|
||||
|
|
|
|||
|
|
@ -229,6 +229,17 @@ class TestToolDiscoverability(unittest.TestCase):
|
|||
self.assertIn("/usr/local/bin/studio;", cmd)
|
||||
self.assertIn("/usr/local/bin/android-studio;", cmd)
|
||||
|
||||
def test_the_sdk_is_shared_with_the_desktop_session(self):
|
||||
"""install-android.sh écrit ses exports dans ~/.bashrc, que GNOME ne
|
||||
lit pas : sans environment.d, Android Studio lancé depuis le menu
|
||||
proposerait de télécharger un SECOND SDK."""
|
||||
cmd = self.todo._qemu_android_studio_remote_cmd()
|
||||
self.assertIn(".config/environment.d", cmd)
|
||||
self.assertIn("ANDROID_HOME=", cmd)
|
||||
# Le même emplacement que celui où la compilation mobile l'installe.
|
||||
self.assertIn("/android", cmd)
|
||||
self.assertIn("ANDROID_HOME", self.todo._qemu_mobile_remote_cmd())
|
||||
|
||||
def test_the_log_says_where_it_landed(self):
|
||||
pycharm = self.todo._qemu_pycharm_remote_cmd()
|
||||
android = self.todo._qemu_android_studio_remote_cmd()
|
||||
|
|
|
|||
Loading…
Reference in a new issue