React Native MQTT.js在Android 9+上不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React Native MQTT.js在Android 9+上不起作用相关的知识,希望对你有一定的参考价值。

我正在使用React Native 0.61(CLI)构建android应用并在此处使用常见的MQTT.js包:https://www.npmjs.com/package/mqtt (v.3.0.0)

这是我的build.gradle

buildToolsVersion = "28.0.3"
minSdkVersion = 25
compileSdkVersion = 28
targetSdkVersion = 28
supportLibVersion = "28.0.0"

我使用WebSocket协议连接到我自己的mqtt代理。

在调试模式下,一切都可以在任何手机上正常运行。但是很奇怪,当我通过命令释放APK(gradlew assembleRelease(签名)),它无法连接到Android 9+(两个模拟器)上的代理(Android 8运行良好)]

似乎编译为本地代码时出现问题。

答案

可能是因为从Andoird 9开始不允许使用HTTP默认设置。您可以在AndroidMainfest.xml中添加以下内容。

<application
    android:usesCleartextTraffic="true"

您还可以使用配置XML。为此,您可以看到此blog

以上是关于React Native MQTT.js在Android 9+上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

MQTT 无法通过 TLS 连接

React Native区分安卓/iOS平台

Match的React Native入门之旅

Android 设备上的 Apollo 网络错误(React Native)

如何通过 React Native 在 Android WebView 中隐藏滚动条

React-Native Expo,Facebook 登录无法在 Android 设备上运行