Android 12+ MQTT适配

最终的解决方案是下载源码去改。我用的是已经修改好了的库,如果包名要自己的,

要注意:

  1. compileSdk 34 和 targetSdk 34 改成33(Android12)或者34(Android13)。

  2. 下载的 module 导入。

  3. gradle 导入:

    // MQTT
    implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5'
    implementation project(path: ':mqtt')

  4. 配置清单换一下Service:

<service android:name="com.somsakelect.android.mqtt.MqttService" />

  1. 包名换一下:

import com.somsakelect.android.mqtt.MqttAndroidClient;

  1. 其他不用动。

参考:

java - Android paho mqtt crashes Android 12 - Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE - Stack Overflow

自动翻译的:

kotlin Android paho mqtt崩溃Android 12 -以S+(版本31及更高版本)为目标需要FLAG_IMMUTABLE或FLAG_MUTABLE之一 _NULL123

其中两个解决方案试过,都不行。下载aar的那个,还有直接引用的,都报错了。

最简单兼容原始代码的是下载源码,修改。

比如这个已经修改好了的库:

GitHub - ElectApp/MyMQTT: MQTT Android Service (Modified from paho.mqtt.android)

或者下载 MQTT 的源码,这样改一下:

相关推荐
533_17 分钟前
[vxe-table] 表头:点击出现输入框
android·java·javascript
邹阿涛涛涛涛涛涛22 分钟前
Jetpack Compose Modifier 深度解析:从链式调用到 Modifier.Node
android
jinanwuhuaguo1 小时前
OpenClaw 2026年4月升级大系深度解读剖析:从“架构重塑”到“信任内建”的范式跃迁
android·开发语言·人工智能·架构·kotlin·openclaw
huhy~2 小时前
基于Ubuntu 24.04 LTS 搭建OpenStack F 版
android·ubuntu·openstack
2401_885885042 小时前
视频短信接口接入麻不麻烦?API调用说明
android·音视频
lI-_-Il2 小时前
喜马拉雅 v9.4.56.3:移动端全站音频资源畅听版
android·音视频
我命由我123453 小时前
Android Jetpack Compose - SearchBar(搜索栏)、Tab(标签页)、时间选择器、TooltipBox(工具提示)
android·java·java-ee·kotlin·android studio·android jetpack·android-studio
恋猫de小郭3 小时前
Flutter PC 多窗口最新进展,底层原生窗口句柄支持已合并
android·前端·flutter
sp424 小时前
NativeScript 的 Jetpack Compose 入门指南
android·android jetpack
用户69371750013844 小时前
AI来了,同事们的效率为什么差这么多?
android·前端·ai编程