少女
353 字
2 分钟
Ubuntu配置Android SDK并使用Cordova

在Ubuntu 20.04.6 LTS上配置Android SDK,并使用Cordova打包Android App

这里使用Github的Codespace

用Goorm IDE发现存储空间不够,在Codespace上又重装了一遍

配置Cordova#

sudo apt update
npm install cordova -g
npm update cordova -g
cordova create <文件夹> <> <软件>
cd <文件夹>
cordova platform add android --save

预览命令:

cordova serve

配置JDK#

Codespace自带JDK 21,但是好像有bug,JDK 17能正常使用

sudo apt install openjdk-17-jdk

安装JDK 17后需要设置JDK的环境变量,不然就是用的JDK 21的环境变量

export JAVA_HOME=/usr/local/sdkman/candidates/java/17.0.10-ms  #jdk17的位置

配置Android SDK#

wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip
unzip commandlinetools-linux-11076708_latest.zip

添加环境变量:

vim ~/.bashrc

.bashrc中添加下面三行:

export ANDROID_SDK_ROOT=/path/to/your/sdk  #你的sdk位置
export ANDROID_HOME=$ANDROID_SDK_ROOT
export PATH=$PATH:$ANDROID_SDK_ROOT/bin

重新打开终端,输入

sdkmanager "platform-tools" "platforms;android-33" "build-tools;33.0.2" --sdk_root=$ANDROID_SDK_ROOT

打包#

cordova build android

错误及解决方式#

Error: LinkageError occurred while loading main class com.android.sdklib.tool.sdkmanager.SdkManagerCli java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0

解决方法:

sdkmanager "build-tools;33.0.2" --sdk_root=$ANDROID_SDK_ROOT

Could not open settings generic class cache for settings file '/workspaces/android/app/platforms/android/settings.gradle' (/home/codespace/.gradle/caches/7.6/scripts/dqjrgsw17c62wbpoagod92e1e). > BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 65

解决方法:

$JAVA_HOME设置为JDK 17的目录

Execution failed for task ':app:mergeLibDexDebug'. > Could not resolve all files for configuration ':app:debugRuntimeClasspath'. > Failed to transform debug (project :CordovaLib) to match attributes {artifactType=android-dex, asm-transformed-variant=NONE, com.android.build.api.attributes.AgpVersionAttr=7.4.2, com.android.build.api.attributes.BuildTypeAttr=debug, com.android.build.gradle.internal.attributes.VariantAttr=debug, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=24, org.gradle.libraryelements=classes, org.gradle.usage=java-runtime}. > Execution failed for DexingNoClasspathTransform: /workspaces/android/app/platforms/android/CordovaLib/build/intermediates/runtime_library_classes_dir/debug. > Error while dexing.

解决办法:

解决上面两个就没这个了

Ubuntu配置Android SDK并使用Cordova
https://onaniishoujo.github.io/posts/ubuntu配置android-sdk并使用cordova/
作者
オナニー少女
发布于
2024-04-06
许可协议
CC BY-NC-SA 4.0