在 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...”)

如何避免在cordova android应用程序上处理两次深层链接?