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

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

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)