お首が長いのよお首が長いのよ

チラシの裏よりお届けするソフトウェアエンジニアとして成長したい人のためのブログ

2018-12-03

android-sdkをCLIでインストールする際にハマった

新しければ良いってもんじゃないと改めて思い知らされる

bash
1$ ./sdkmanager
2Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
3    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
4    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
5    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
6    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
7    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
8Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
9    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
10    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
11    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
12    ... 5 more
13

そもそもJava自体ちゃんと動作していないように見えた。 この端末にインストールしたJavaはJava11(OpenJDK 11.01) ちなみにbrew cask経由でインストールした。

環境

  • macOS mojave
  • brew cask経由でOpenJDK(11)をインストール
  • android-sdk のzipを公式からダウンロード。 /usr/local/opt/android-sdk/ に配置

Java8で動いた

android-sdk入れる場合って基本はAndroid Studioをインストールと同時に行うパターンが多くてRequirementsとかにパットたどり着けなかったんだけど、Java11ではなく、Java8で入れてみたら難なく動いたって話。

bash
1$ brew cask install homebrew/cask-versions/java8
2$ export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0)
3$ /usr/libexec/java_home
4$ java -version
5java -version
6java version "1.8.0_192"
7Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
8Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)
9
10$ ./sdkmanager 
11Warning: File /Users/ryouta/.android/repositories.cfg could not be loaded.
12[=======================================] 100% Computing updates...
13$ ./sdkmanager --list
14Warning: File /Users/ryouta/.android/repositories.cfg could not be loaded.
15Installed packages:=====================] 100% Computing updates...
16  Path    | Version | Description              | Location
17  ------- | ------- | -------                  | -------
18  tools   | 26.1.1  | Android SDK Tools 26.1.1 | tools/
19
20Available Packages:
21  Path                                                                                     | Version      | Description
22  -------                                                                                  | -------      | -------
23  add-ons;addon-google_apis-google-15                                                      | 3            | Google APIs
24  add-ons;addon-google_apis-google-16                                                      | 4            | Google APIs
25  add-ons;addon-google_apis-google-17                                                      | 4            | Google APIs
26  add-ons;addon-google_apis-google-18                                                      | 4            | Google APIs
27  add-ons;addon-google_apis-google-19                                                      | 20           | Google APIs
28  add-ons;addon-google_apis-google-21                                                      | 1            | Google APIs
29  add-ons;addon-google_apis-google-22                                                      | 1            | Google APIs
30  add-ons;addon-google_apis-google-23                                                      | 1            | Google APIs
31  add-ons;addon-google_apis-google-24                                                      | 1            | Google APIs
32  add-ons;addon-google_gdk-google-19                                                       | 11           | Glass Development Kit Preview
33  build-tools;19.1.0                                                                       | 19.1.0       | Android SDK Build-Tools 19.1
34~~~~~略~~~~~
35

/以上

よかったらシェアしてください!