Mac环境下Cordova构建Android应用遇多问题:Android Studio启动报错
MacOS 13.4.1 下 Cordova Android 构建环境及 Android Studio 启动问题
一、Cordova Android 环境检测报错
执行cordova requirements后输出如下:
Requirements check results for android: Java JDK: installed 11.0.21 Android SDK: installed true Android target: not installed Command failed with exit code 1: avdmanager list target Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156) at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75) at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81) at com.android.sdklib.tool.AvdManagerCli.run(AvdManagerCli.java:213) at com.android.sdklib.tool.AvdManagerCli.main(AvdManagerCli.java:200) Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 5 more Gradle: installed /usr/local/Cellar/gradle/8.5/bin/gradle Requirements check results for browser: Some of requirements check failed
问题根源及解决办法
- 核心问题:Java 11 移除了
javax.xml.bind模块,但旧版Android SDK工具依赖该模块,导致avdmanager执行失败。 - 解决步骤:
- 临时修复:在终端先执行以下命令添加JVM参数,再重新运行检测:
export JAVA_OPTS="--add-modules java.xml.bind" cordova requirements - 永久生效:把上述
export命令添加到你的shell配置文件(比如~/.zshrc或~/.bash_profile),保存后执行source ~/.zshrc(对应你的shell)让配置生效。 - 安装Android Target:修复环境后,打开Android Studio的SDK Manager,安装至少一个Android SDK Platform(比如Android 33/34),再运行检测就能识别到Android target。
- Browser环境修复:确保Chrome浏览器已安装,再重新运行
cordova requirements即可。
- 临时修复:在终端先执行以下命令添加JVM参数,再重新运行检测:
二、Android Studio 启动报错「IDE Already Running」
报错详情
Cannot connect to already running IDE instance. CannotActivateException: /Users/tomadkins/Library/Application Support/Google/AndroidStudio2023.1
报错提到的目录不存在,试过卸载重装、终止进程等方法都没用。
解决办法
- 删除锁文件:Android Studio会生成锁文件标记运行状态,即使进程终止也可能残留。执行以下命令查找并删除相关锁文件:
找到后删除对应文件即可。find ~/Library/Application\ Support/Google -name "*.lock" -o -name "*.pid" - 清理缓存日志:即使目标目录不存在,可能有其他缓存残留,执行命令清理:
rm -rf ~/Library/Caches/Google/AndroidStudio2023.1 rm -rf ~/Library/Logs/Google/AndroidStudio2023.1 - 彻底终止进程:打开Activity Monitor,搜索
java或studio相关进程,强制终止所有匹配的进程后再启动Android Studio。 - 修复目录权限:先创建缺失的目录并设置正确权限:
mkdir -p ~/Library/Application\ Support/Google/AndroidStudio2023.1 chmod -R 755 ~/Library/Application\ Support/Google
内容的提问来源于stack exchange,提问作者Tom_A
相关产品推荐
相关产品推荐

