无法使用 ionic 3 中的 cordova-android 11 读取 null 的属性“查找”

问题描述 投票:0回答:6

我已将 cordova-android 升级到版本 11 以支持 API 级别 31 或更高版本,但是当我创建构建时出现错误无法读取 null 的属性“find”

我已按照此处的建议进行了更改迁移到 Cordova-Android 11 Config.xml

        <preference name="AndroidWindowSplashScreenAnimatedIcon" value="resources/android/icon/drawable-xxxhdpi-icon.png" />

删除了所有

<splash>
标签并 已卸载

cordova-plugin-splashscreen

cordova-plugin-androidx-adapter

仍然出现错误,请帮忙

cordova ionic-framework ionic3 cordova-android
6个回答
2
投票

我也遇到过同样的问题。 正如这里所建议的,这是由一些插件引起的。

就我而言,插件是: 科尔多瓦插件 Telerik-imagepicker PhoneGap-插件-条形码扫描仪

它们实际上不再维护了,所以我不得不使用这些叉子,两者都是为同一个人使用的: https://github.com/geraldapeoples/phonegap-plugin-barcodescanner https://github.com/geraldapeoples/ImagePicker

使用分叉插件并不是一个好的做法,但我找不到其他可以正确完成工作的插件,而且没有时间或技能自己开发一个新插件。

迁移到 cordova-android 11 并不是一条简单的道路,但 Cristian Zumelzu 上面建议的文档涵盖了我遇到的大部分问题。


1
投票

我将其添加到我的 config.xml 中 它有效!!

<platform name="android">
    ...
    <config-file parent="/resources" target="app/src/main/res/values/themes.xml">
         <style name="Theme.App.SplashScreen" parent="Theme.SplashScreen">
              <item name="windowSplashScreenBackground">#FFFFFF</item>
              <item name="windowSplashScreenAnimatedIcon">@drawable/notification_icon.png</item>
              <item name="windowSplashScreenBrandingImage">@drawable/notification_icon.png</item>
              <item name="windowSplashScreenIconBackgroundColor">#FFFFFF</item>
              <item name="windowSplashScreenAnimationDuration">1000</item>
              <item name="postSplashScreenTheme">@style/MyTheme</item>
         </style>
    </config-file>
    ...
</platform>

0
投票

问题似乎是由其中一个插件出现的。我多次遇到这个问题,因此在安装任何新插件之前我总是保留整个项目的备份

执行以下任务应该会有所帮助

cordova 平台删除 android

然后

cordova平台添加android@latest

尝试仅使用 android 而不是 @latest,以防出现相同的错误。

有时 json 文件会存储信息,然后当您撤销更改时永远不会删除它。


0
投票

当您尝试更新到 cordova-android 11 时会遇到很多问题。我建议您按照本文中的详细步骤进行正确升级 https://ionic.zendesk.com/hc/en-us/articles/7891143965975-Migration-to-Cordova-Android-11

我还必须将“types”:[]添加到tsconfig.js中的“compilerOptions”中 之后我解决了我的问题


0
投票

您能分享整个错误吗?升级到 cordova-android-11 以及升级到使用 targetSDK 31 时都会出现一些问题(您是同时执行这两个操作吗?还是您已经在使用 targetSDK31?)。 这是一个相当标准的错误。需要检查的一些事项:

  • 您是否升级到使用 java 11(或更高版本),java 8 已弃用。
  • 您使用的是 Node 14 或更高版本吗?节点 12 已弃用。
  • 我相信你应该运行:
    npm i [email protected]
    ,因为iOS仍然需要该插件(如果你使用此版本标签,则不会为Android添加该插件)。
  • 我必须修补我们的cordova插件qrScanner,因为它使用术语“编译”,它更改为“实现”
  • 我认为使用 png 作为启动画面图标不会扩展到不同的设备。但我不确定。 (您可以在 android studio 中从 .svg 创建 .XML 并使用它)。

如果您可以分享更多细节,您可以获得更准确的建议。


0
投票

此问题通常在您更新到 cordova-android >=11 后相关。

发生这种情况是因为您的插件之一或在 config.xml 中您正在定义一些主题,例如。

<resources>
    <style name="MyTheme" parent="android:Theme.Holo.Light">
    </style>
</resources>

具体来说,我的例子是插件 cordova-plugin-telerik-imagepicker。

还没更新。您需要从插件的 config.xml 中删除它(引用资源)

<resource-file src="src/android/Library/res/values/themes.xml" target="res/values/themes.xml"/>

我使用最后的更改创建了一个分支,允许在 cordova-android 12 上运行插件 https://github.com/ZumelzuR/ImagePicker.git

无论如何,您正在使用的其他插件也可能会发生这种情况

© www.soinside.com 2019 - 2024. All rights reserved.