在 Android SDK for Cordova 7.0.1 中安装有啥要求
Posted
技术标签:
【中文标题】在 Android SDK for Cordova 7.0.1 中安装有啥要求【英文标题】:What are the requirements to be installed in Android SDK for Cordova 7.0.1在 Android SDK for Cordova 7.0.1 中安装有什么要求 【发布时间】:2018-03-06 07:31:07 【问题描述】:Cordova 要求给出以下输出:
android 的需求检查结果:
Java JDK:已安装
Android SDK:安装正确
Android 目标:未安装 avdmanager:命令失败,退出代码 1 错误输出: 线程“主”java.lang.NoClassDefFoundError 中的异常:javax/xml/bind/annotation/XmlSchema 在 com.android.repository.api.SchemaModule$SchemaModuleVersion.(SchemaModule.java:156) 在 com.android.repository.api.SchemaModule.(SchemaModule.java:75) 在 com.android.sdklib.repository.AndroidSdkHandler.(AndroidSdkHandler.java:81) 在 com.android.sdklib.tool.AvdManagerCli.run(AvdManagerCli.java:213) 在 com.android.sdklib.tool.AvdManagerCli.main(AvdManagerCli.java:200) 引起:java.lang.ClassNotFoundException:javax.xml.bind.annotation.XmlSchema 在 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496) ... 5 更多
Gradle:已安装 /Applications/Android Studio.app/Contents/gradle/gradle-3.2/bin/gradle
错误:部分需求检查失败
离子信息的输出是:
cli 包:(/usr/local/lib/node_modules)
@ionic/cli-utils : 1.12.0
ionic (Ionic CLI) : 3.12.0
全局包:
cordova (Cordova CLI) : 7.0.1
本地包:
@ionic/app-scripts : 2.1.4
Cordova Platforms : android 6.2.3
Ionic Framework : ionic-angular 3.6.1
系统:
Node : v6.11.3
npm : 3.10.10
OS : macOS Sierra
Xcode : Xcode 9.0 Build version 9A235
杂项:
backend : pro
我安装了 Android Studio,安装了适用于 Android API 26 和 25 的构建工具,以及适用于 API 26 和 25 的 android SDk。
在 Android Studio 上正常工作...已经尝试了可用的帮助,但无法解决问题....
【问题讨论】:
大家好,我得到了解决方案,详细信息在下面的答案中提供 总结:最新版本的 Cordova 7.0.1 不支持 idk 9 ,可能是版本名称或其他兼容性问题......如果你有最新版本的Cordova 即 Cordova 7.0.1 ,您应该坚持使用 jdk 8 的最新版本,直到 Cordova 的解决方案出现 【参考方案1】:我的 Mac 上有 jdk 9
在运行 java -version 时得到以下输出
java 版本“9”
Java(TM) SE 运行时环境(构建 9+181)
Java HotSpot(TM) 64 位服务器 VM(构建 9+181,混合模式)
但是在运行 ionic cordova build android 输出是
Running app-scripts build: --platform android --target cordova
[18:30:48] build dev started ...
[18:30:48] clean started ...
[18:30:48] clean finished in 2 ms
[18:30:48] copy started ...
[18:30:48] transpile started ...
[18:30:52] transpile finished in 3.55 s
[18:30:52] preprocess started ...
[18:30:52] deeplinks started ...
[18:30:52] deeplinks finished in 11 ms
[18:30:52] preprocess finished in 12 ms
[18:30:52] webpack started ...
[18:30:52] copy finished in 3.80 s
[18:31:01] webpack finished in 9.22 s
[18:31:01] sass started ...
[18:31:03] sass finished in 1.60 s
[18:31:03] postprocess started ...
[18:31:03] removed unused font files
[18:31:03] postprocess finished in 14 ms
[18:31:03] lint started ...
[18:31:03] build dev finished in 14.60 s
> ionic cordova prepare android
> cordova prepare android
> cordova build android
✖ Running command - failed!
[ERROR] An error occurred while running cordova build android (exit code 1):
ANDROID_HOME=/Users/behgals/Library/Android/sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home
Error: Requirements check failed for JDK 1.8 or greater
搜索了几个小时——终于决定删除 idk 9 并切换到旧版本
要删除 idk9,使用以下命令
sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-9.jdk/
并安装了 idk8 最新版本
安装一切正常并运行命令后 科尔多瓦要求:-$
cordova requirements
android 的需求检查结果:
Java JDK: installed 1.8.0
Android SDK: installed true
Android target: installed android-26,android-25
Gradle: installed /Applications/Android
Studio.app/Contents/gradle/gradle-3.2/bin/gradle
【讨论】:
总结:最新版本的 Cordova 7.0.1 不支持 idk 9 ,可能是版本名称或其他兼容性问题......如果你有最新版本的Cordova 即 Cordova 7.0.1 ,您应该坚持使用 jdk 8 的最新版本,直到 Cordova 的解决方案出现 此解决方案适用于 Ubuntu 17.10 上的 Cordova 7.0.1 的相同问题。 最新的 Cordova 8.0.0 版本相同。【参考方案2】:对我来说,我的 java 版本是 11,它需要版本 8,所以我更改了 linux 中的默认版本:
sudo update-alternatives --config java
然后在 ~/.bashrc (ubuntu) 上设置 JAVA_HOME 和 JRE_HOME 环境变量:
#JAVA HOME
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
【讨论】:
以上是关于在 Android SDK for Cordova 7.0.1 中安装有啥要求的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用 Epson ePOS SDK for iOS 为 ionic 3 插件创建cordova?
极光推送cordova插件修改android原生sdk依赖的方法
如何在 cordova phonegap 项目的 libs 文件夹中添加 Paypal-android-sdk?
cordova 和 java ( JDK ) 和 android-studio (SDK)的初始安装和配置
Cordova 10 和 Android SDK 30:无法访问本地文件(“不允许加载本地资源:file:///storage/emulated/0/Android/data...”)