安装了cordova插件文件传输导致Android构建失败



我的ionic info环境:

cli 软件包: (C:\Users\jessica\AppData\Roamingpmode_modules(

@ionic/cli-utils  : 1.19.2
ionic (Ionic CLI) : 3.20.0

全球套餐:

cordova (Cordova CLI) : 8.0.0

本地包:

@ionic/app-scripts : 3.0.1
Cordova Platforms  : android 6.2.3 browser 5.0.1
Ionic Framework    : ionic-angular 3.8.0

系统:

Android SDK Tools : 25.2.5
Node              : v6.10.3
npm               : 6.0.1
OS                : Windows 8.1

环境变量:

ANDROID_HOME : C:Program Files (x86)Androidandroid-sdk

杂项:

backend : legacy`

安装ionic cordova plugin add cordova-plugin-file-transfer后,当我运行命令时出现以下错误ionic cordova build android

:compileDebugJavaWithJavac - 不是增量的(例如输出有 已更改,没有先前的执行等(。 F:\D\IONIC\quicktask\quicktask-android\quicktask\platforms\android\src\org\apache\cordova\filetransfer\FileTransfer.java:49: 错误:包 org.apache.cordova.file 不存在导入 org.apache.cordova.file.FileUtils; ^ F:\D\IONIC\quicktask\quicktask-android\quicktask\platforms\android\src\org\apache\cordova\filetransfer\FileTransfer.java:851: 错误:找不到符号

FileUtils filePlugin = (FileUtils) pm.getPlugin("File");
^   symbol: class FileUtils F:DIONICquicktaskquicktask-androidquicktaskplatformsandroidsrcorgapachecordovafiletransferFileTransfer.java:851:

错误:找不到符号 FileUtils filePlugin = (FileUtils( pm.getPlugin("File"(; ^ symbol: class FileUtils 注意:某些输入文件使用或覆盖已弃用的 API。

注意:使用 -Xlint:deprecation 重新编译以了解详细信息。注意: F:\D\IONIC\quicktask\quicktask-android\quicktask\platforms\android\src\org\apache\cordova\filetransfer\FileTransfer.java 使用未经检查或不安全的操作。注意:重新编译 -Xlint:未选中详细信息。3 错误:编译调试JavaWithJavac 失败

失败:生成失败,出现异常。

  • 出了什么问题:任务":compileDebugJavaWithJavac"的执行失败。

    编译失败;有关详细信息,请参阅编译器错误输出。

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获取更多日志输出。构建失败

总时间:48.087秒

(节点:6372( 未处理的承诺拒绝警告:未处理的承诺 拒绝(拒绝 ID:1(:错误:cmd:命令失败,退出代码 1 错误输出:注意:某些输入文件使用或覆盖已弃用的 应用程序接口。注意:使用 -Xlint:deprecation 重新编译以了解详细信息。注:部分 输入文件使用或覆盖已弃用的 API。注意:重新编译 -Xlint:弃用详细信息。F:\D\IONIC\quicktask\quicktask-android\quicktask\platforms\android\src\org\apache\cordova\filetransfer\FileTransfer.java:49: 错误:包 org.apache.cordova.file 不存在导入 org.apache.cordova.file.FileUtils; ^ F:\D\IONIC\quicktask\quicktask-android\quicktask\platforms\android\src\org\apache\cordova\filetransfer\FileTransfer.java:851: 错误:找不到符号 FileUtils filePlugin = (FileUtils( pm.getPlugin("File"(; ^ symbol: class FileUtils F:\D\IONIC\quicktask\quicktask-android\quicktask\platforms\android\src\org\apache\cordova\filetransfer\FileTransfer.java:851: 错误:找不到符号 FileUtils filePlugin = (FileUtils( pm.getPlugin("File"(; ^ symbol: class FileUtils 注意:某些输入文件使用或覆盖已弃用的 API。 注意:使用 -Xlint:deprecation 重新编译以了解详细信息。注意: F:\D\IONIC\quicktask\quicktask-android\quicktask\platforms\android\src\org\apache\cordova\filetransfer\FileTransfer.java 使用未经检查或不安全的操作。注意:重新编译 -Xlint:未选中详细信息。3 错误

失败:生成失败,出现异常。

  • 出了什么问题:任务":compileDebugJavaWithJavac"的执行失败。

    编译失败;有关详细信息,请参阅编译器错误输出。

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获取更多日志输出。

我也遇到了这个问题,这是由低版本的cordova-android引起的。如果您在 ionic cordova 平台添加 android,注意到 cordova-plugin-file 是大于或等于 6.3.0 的 cordova-android 版本所必需的。

因此,只需运行以下命令:

ionic cordova platform remove android
ionic cordova platform add android@6.3.0

这将在运行离子构建后成功打包。

这是因为一些安卓支持版本。如果您在某个 android studio IDE 中检查您的 android 项目,您可以看到 android 支持的版本,该版本与该文件插件使用的版本不兼容。

您可以使用cordova-android-support-gradle-release插件,它可以帮助您在构建过程中设置正确的版本。你可以谷歌一下如何使用它。

最新更新