android 10 不支持白名单插件

标签 android cordova android-10.0 ionic5 whitelist

Android 10 不支持“白名单插件”,当我添加 android 平台时,它会跳过白名单插件,这会在构建或运行应用程序时导致“文件传输插件”问题

ionic cordova platform add android@latest

Installing "cordova-plugin-whitelist" for android
Plugin doesn't support this project's cordova-android version. cordova-    android: 10.1.0, failed version requirement: >=4.0.0 <10.0.0
Skipping 'cordova-plugin-whitelist' for android
创建应用程序时,会出现以下错误:
ionic cordova build android

Task :app:compileDebugJavaWithJavac D:\workspace\SCL\platforms\android\app\src\main\java\org\apache\cordova\filetransfer\FileTransfer.java:48: error: cannot find symbol import org.apache.cordova.Whitelist; ^ symbol: class Whitelist location: package org.apache.cordova D:\workspace\SCL\platforms\android\app\src\main\java\org\apache\cordova\filetransfer\FileTransfer.java:691: error: cannot find symbol Whitelist whitelist = (Whitelist)gwl.invoke(webView); ^ symbol: class Whitelist location: class org.apache.cordova.filetransfer.FileTransfer D:\workspace\SCL\platforms\android\app\src\main\java\org\apache\cordova\filetransfer\FileTransfer.java:691: error: cannot find symbol Whitelist whitelist = (Whitelist)gwl.invoke(webView); ^ symbol: class Whitelist location: class org.apache.cordova.filetransfer.FileTransfer Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 3 errors


似乎“文件传输”需要“白名单插件”,但添加 android > 10 时会跳过“白名单插件”
这在android 9中不会发生
任何人都可以帮忙吗?

最佳答案

Cordova 10+ 包含 Whitelist 类,不需要外部插件。除了删除它,您还需要更新文件传输插件。
所以,你需要做两件事:

  • 更新文件传输插件。尽管不再推荐使用此插件,但幸运的是,开发人员已更新插件以支持新的 Whitelist 类,该类现在默认包含在 Cordova 中。您必须通过直接从 github 存储库安装来执行此操作:
    Cordova 插件添加https://github.com/apache/cordova-plugin-file-transfer.git
  • 移除白名单插件
    Cordova 插件rm Cordova 插件白名单

  • H/T 对本 thread 中的原始回复

    关于android 10 不支持白名单插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68896148/

    相关文章:

    android - 不同型号手机的布局

    javascript - 调用AJAX时如何显示进度条?

    android - requestCellInfoUpdate() 的正确用法是什么?

    android - 如何将图像保存到 Android Q 中的相机文件夹?

    java - 从 Android Q 中删除手势

    php - 从 IOS 应用程序发布的 Smily 在 Web php 中不起作用

    java - Appium - 创建 session - 错误 : Either JSONWP or W3C capabilities should be provided

    android - 如何防止用户在 Android Crosswalk WebView 中截屏?

    Android:如何创建 TextInputLayout 的自定义 UI

    javascript - Phonegap 中的多屏支持和适用于 android、iphone、windows blackberry 的图像大小