一、弹出原因
因为真机升级到Android9之后,在最新安卓版本P等都会出现该弹窗提示。谷歌官方解释:Android P 后谷歌限制了开发者调用非官方公开API 方法或接口。并且Android P之后,不允许http请求,必须使用https,所以需要进行以下处理。
二、解决办法
1、在..\ionic3\appProject\config.xml添加
<preference name="android-targetSdkVersion" value="28" />
后,执行
ionic cordova platform remove android
ionic cordova platform add android
2、解决27+的问题(如果有)
在..\ionic3\appProject\platforms\android\app\build.gradle 最后面添加一下内容
configurations.all {
resolutionStrategy {
force 'com.android.support:support-v4:26.0.0'
}
}
// 解决support-annotations版本冲突
configurations.all {
resolutionStrategy.force 'com.android.support:support-annotations:27.1.1'
}
3、解决google地址下载不了的问题
将 android/build.gradle,android/app/build.gradle,android/CordovaLib/build.gradle 中的所有 repositories改为
repositories {
jcenter()
maven {
// url "https://maven.google.com"
url "http://maven.aliyun.com/nexus/content/groups/public/"
}
}
4、由于android9不允许http请求,需要使用https,但是原接口无法提供https,则需要进行以下操作
在..\ionic3\appProject\platforms\android\app\src\main\res\xml下创建文件network_security_config.xml(名字随意,与下面引用对应就可以),内容为
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
然后在..\ionic3\appProject\platforms\android\app\src\main\AndroidManifest.xml中增加如下配置
<application
android:networkSecurityConfig="@xml/network_security_config"
*
*
*
/application>