食用Android SDK的正确姿势之2020更新
以linux系统为例,安装sdk 28
ubuntu 仓库自带了一个sdk ,但目前最新版本为27.0.1. 由于cordova 最低支持27.0.3.不得不手动下载.
可是搜遍了网络,也没找到安装包,网上多介绍国内某个n年未更新的国内下载地址.r24还是最新版本…
最后摸索出来,中间无数坎坷,分享一下:
方式一: Android Studio 自带sdk
在 google官方下载即可:
https://developer.android.google.cn/studio
google下载android studio
不科学的入网方法也可以下载.
Linux
147 MB 92ffee5a1d98d856634e8b71132e8a95d96c83a63fde1099be3d86df3106def9
方式二:只需要sdk
由于自己用vsc所以不想下载studio, 这时可以下载sdk tools (在Command line tools only 下面) ,里面包含 sdk manager,然后利用他来在线下载sdk.
使用方法:
tar -xf sdk-tools-linux-xxxxxx.zip
cd sdk
#显示可用包
./bin/sdkmanager --list
#安装需要的sdk版本
./bin/sdkmanager "platforms;android-28"
#还可以安装build tools
./bin/sdkmanager " build-tools;28.0.3"
然后设置环境变量: ~/.bashrc
#多版本的jdk可以在这里切换
#export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
#两个都最好设置一下,cordova需要
export ANDROID_SDK_ROOT=/opt/Android/SDK/
export ANDROID_HOME=/opt/Android/SDK/
export PATH=$JAVA_HOME/bin:$PATH
遇到的问题:
截止2020-1-27日最新官方版本的sdk tools(版本4333796),在Linux, jdk 11下会报错:
sdkmanager报错:
class not find: javax/xml/bind/annotation/XmlSchema
原因:
jdk 11去掉了 一些包,导致找不到,
解决办法:
- 方式一:更换jdk, jdk 8还有这些包
apt install openjdk-8-jdk
- 方式二:引入缺失的包
修改./bin/sdkmanager文件,引入需要的包(可以用maven或gradle下载)
APP_HOME=../
MAVEN_PATH=~/.m2/repository/javax/activation/activation/1.1.1/activation-1.1.1.jar:~/.m2/repository/javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar:~/.m2/repository/com/sun/xml/bind/jaxb-impl/2.3.0/jaxb-impl-2.3.0.jar:~/.m2/repository/com/sun/xml/bind/jaxb-core/2.3.0/jaxb-core-2.3.0.jar
打完收功.