mapView.onCreate 在 api 级别 26 的 cordova android 应用程序中工作正常,但在 api 级别 28 时崩溃

mapView.onCreate works fine in cordova android app with api level 26, but crashes with api level 28

我有一个 7 岁的 Cordova Android 应用程序,它使用 mapkit 插件。该插件将 mainView 拆分为 webViewmapView。随着时间的推移,我们添加了功能,构建到 API 级别 26 就很好,应用程序正在 运行ning。现在 Google 要求至少 API 等级 28 为 targetSdkVersion。所以我在 cordova 项目(目前使用 cordova 7.1)的 config.xml 中唯一改变的是 android-targetSdkVersion 到 28。构建 cordova build --release android 工作得很好,但是当我 运行 模拟器上的应用程序或 Phone(均为 Android 版本 9),应用程序崩溃。但是使用 API 级别 26 构建,应用程序 运行 在两者上都很好。

该插件使用 com.google.android.gms.maps.MapView。相关代码在MapKit.java文件的showMap函数中。当我注释掉 mapView.onCreate(null) 行时,应用程序不会崩溃,但显然没有 google 地图了。

为什么 mapView.onCreate(null) 对 API 级别 26 有效,但对 API 级别 28 无效?需要更改什么才能让 google 地图在 API 级别 28 中正常工作?

在 build.gradle 中你需要添加这个来支持 apache 以上 android 6.0

使用库 'org.apache.http.legacy'

在AndroidManifest文件中声明支持9.0以上

 <uses-library android:name="org.apache.http.legacy" android:required="false"/>