【问题标题】:Android Support library classes compilation error from different cordova plugins来自不同cordova插件的Android支持库类编译错误
【发布时间】:2021-04-22 22:28:17
【问题描述】:

我正在使用 Salesforce SDK 制作一个 cordova 应用程序。当我尝试在 Android Studio 中构建应用程序时,我收到来自多个插件的编译错误。以下是我添加的插件列表-

call-number 1.0.4 "Cordova Call Number Plugin"
com.salesforce 7.2.0 "SalesforceMobileSDK Plugins"
cordova-android-support-gradle-release 3.0.1 "cordova-android-support-gradle-release"
cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-camera 4.1.0 "Camera"
cordova-plugin-datepicker 0.9.3 "DatePicker"
cordova-plugin-device 2.0.3 "Device"
cordova-plugin-dialogs 2.0.2 "Notification"
cordova-plugin-document-viewer 0.9.11 "SitewaertsDocumentViewer"
cordova-plugin-email-composer 0.9.2 "EmailComposer"
cordova-plugin-file 6.0.2 "File"
cordova-plugin-filechooser 1.2.0 "File Chooser"
cordova-plugin-geolocation 4.0.2 "Geolocation"
cordova-plugin-ionic-keyboard 2.2.0 "cordova-plugin-ionic-keyboard"
cordova-plugin-network-information 2.0.2 "Network Information"
cordova-plugin-screen-orientation 3.0.2 "Screen Orientation"
cordova-plugin-splashscreen 5.0.3 "Splashscreen"
cordova-plugin-statusbar 2.4.3 "StatusBar"
cordova-plugin-whitelist 1.3.4 "Whitelist"
cordova-plugin-x-toast 2.7.2 "Toast"
cordova-support-google-services 1.1.0 "cordova-support-google-services"
cordova.plugins.diagnostic 5.0.0 "Diagnostic"
es6-promise-plugin 4.2.2 "Promise"
phonegap-plugin-multidex 1.0.0 "Multidex"
phonegap-plugin-push 2.2.3 "PushPlugin"

来自> Task :app:compileDebugJavaWithJavac 的错误

xyz\platforms\android\app\src\main\java\com\adobe\phonegap\push\BackgroundActionButtonHandler.java:9: error: cannot find symbol
import android.support.v4.app.RemoteInput;
                             ^
  symbol:   class RemoteInput
  location: package android.support.v4.app
xyz\platforms\android\app\src\main\java\com\adobe\phonegap\push\FCMService.java:26: error: cannot find symbol
import android.support.v4.app.NotificationCompat;
                             ^
  symbol:   class NotificationCompat
  location: package android.support.v4.app

xyz\platforms\android\app\src\main\java\cordova\plugins\Diagnostic.java:57: error: cannot find symbol
import android.support.v4.app.ActivityCompat;
                             ^
  symbol:   class ActivityCompat
  location: package android.support.v4.app
    xyz\platforms\android\app\src\main\java\cordova\plugins\Diagnostic_External_Storage.java:28: error: cannot find symbol
import android.support.v4.os.EnvironmentCompat;
                            ^
 symbol:   class EnvironmentCompat
 location: package android.support.v4.os

来自cordova-plugin-email-composer, cordova-plugin-camera, cordova-plugin-document-viewer 的类似错误

即使我尝试cordova-android-support-gradle-release 来解决这些 android 支持库版本问题,没有成功

我还尝试通过手动编辑类来将导入更改为 androidx... 包,但我的应用仍然无法运行

由于我需要所有这些插件,我无法找到解决这些错误的方法。

cordova-cli:9.0.0
cordova-android: 8.0.0

有人可以在这里帮助我吗?

【问题讨论】:

  • 最后,它以这种方式工作 - 添加了插件 cordova-plugin-androidx-adapter,这有助于将所有 android 支持包移动到 androidx 包并且现在 android 构建成功。
  • 把你的方法作为答案,真的很有帮助

标签: android cordova cordova-plugins


【解决方案1】:

我通过安装cordova-plugin-androidx-adapter 插件解决了这个问题。此插件将所有旧版 Android 支持引用迁移到 AndroidX 版本。

如果项目使用cordova-android@8,请在/platforms/android/gradle.properties下面添加启用AndroidX

 android.useAndroidX=true 
 android.enableJetifier=true

cordova-android@9 中添加了对 AndroidX 的支持

【讨论】:

  • 谢谢!我还发现白名单插件还不兼容 AndroidX 的更改,所以我必须将其删除才能构建。我猜新版本正在开发中?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-18
  • 1970-01-01
相关资源
最近更新 更多