Skip to content

Commit d71ef6a

Browse files
committed
Prefer avdmanager from cmdline-tools
The Android SDK tools are deprecated in favor of the command line tools. Trying to use avdmanager from the deprecated tools fails on OpenJDK 11 with since it can't find the `javax/xml/bind/annotation/XmlSchema` class. Try `cmdline-tools/latest/bin/avdmanager` first.
1 parent 4baec32 commit d71ef6a

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

pythonforandroid/build.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@ def get_ndk_sysroot(ndk_dir):
4040

4141

4242
def get_targets(sdk_dir):
43-
if exists(join(sdk_dir, 'tools', 'bin', 'avdmanager')):
43+
if exists(join(sdk_dir, 'cmdline-tools', 'latest', 'bin', 'avdmanager')):
44+
avdmanager = sh.Command(join(sdk_dir, 'cmdline-tools', 'latest', 'bin', 'avdmanager'))
45+
targets = avdmanager('list', 'target').stdout.decode('utf-8').split('\n')
46+
47+
elif exists(join(sdk_dir, 'tools', 'bin', 'avdmanager')):
4448
avdmanager = sh.Command(join(sdk_dir, 'tools', 'bin', 'avdmanager'))
4549
targets = avdmanager('list', 'target').stdout.decode('utf-8').split('\n')
4650
elif exists(join(sdk_dir, 'tools', 'android')):

0 commit comments

Comments
 (0)