Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

android 10 doesn't support whitelist plugin

Android 10 doesn't support "whitelist plugin", when I add android platform it skips whitelist plugin which cause "file transfer plugin" issues when building or running the application

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

When creating the application, these errors will appear :

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

it seems like "file transfer" require "whitelist plugin" but "whitelist plugin" is being skipped when adding android > 10

this doesn't happen in android 9

anyone can help please ?

like image 573
BASSI Yassine Avatar asked Aug 23 '21 16:08

BASSI Yassine


1 Answers

Cordova 10+ includes the Whitelist class and no external plugin is required. In addition to removing it you also need to update the file transfer plugin.

So, you need to do two things:

  1. Update the file transfer plugin. Even though this plugin is no longer recommended, the developer has thankfully updated the plugin to support the new Whitelist class, which is now included by default in Cordova. You will have to do this by installing directly from the github repo:

    cordova plugin add https://github.com/apache/cordova-plugin-file-transfer.git

  2. Remove the whitelist plugin

    cordova plugin rm cordova-plugin-whitelist

H/T to the original response in this thread

like image 85
Rajath Kedilaya Avatar answered Sep 18 '22 07:09

Rajath Kedilaya