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
拆分为 webView
和 mapView
。随着时间的推移,我们添加了功能,构建到 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"/>
我有一个 7 岁的 Cordova Android 应用程序,它使用 mapkit 插件。该插件将 mainView
拆分为 webView
和 mapView
。随着时间的推移,我们添加了功能,构建到 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"/>