微信支付在项目targetSdkVersion>=30 报错解决办法。
微信支付和支付宝在 Android11(targetSdkVersion >=30)下的兼容性问题解决办法
随着 Android11 的发布,Google 对应用的安全性和隐私性提出了更高的要求。其中一个重要变化是,Android11 将对应用的权限进行更加严格的控制,这将导致一些第三方支付 SDK(如微信支付和支付宝)在 Android11 下出现兼容性问题。
问题描述
当你在项目中设置 `targetSdkVersion >=30` 时,可能会遇到以下错误:
* 微信支付:无法找到微信支付的服务* 支付宝:无法找到支付宝的服务这些错误都是由于 Android11 的新特性——"queries"(查询)导致的。"queries" 是一个用于限制应用访问特定服务或组件的机制。
解决办法
要解决这个问题,需要在 AndroidManifest.xml 文件中添加以下代码:
```xml
```
这里的 `com.tencent.mm` 和 `hk.alipay.wallet` 是微信支付和支付宝的包名。请根据你的实际情况填写正确的包名。
注意
* 如果你使用的是 Gradle 来管理项目的依赖,需要在 build.gradle 文件中添加以下代码:
```groovyandroid {
defaultConfig {
// ...
targetSdkVersion30 }
}
```
* 如果你使用的是 Android Studio 来编译项目,请确保你的项目配置正确,并且 `targetSdkVersion` 已经设置为30 或以上。
总结
在 Android11 下,微信支付和支付宝可能会出现兼容性问题。要解决这个问题,需要在 AndroidManifest.xml 文件中添加 "queries" 节点,并填写正确的包名。同时,请确保你的项目配置正确,并且 `targetSdkVersion` 已经设置为30 或以上。
参考
* [Android11 的新特性——"queries"]( [微信支付 Android SDK 文档]( [支付宝 Android SDK 文档](