0

My MainActivity file contains all the necessary libraries and a basic code for the android app. It is giving me an error for LocalBroadcastManager.

Errors:
W/e.myapplication: JNI critical lock held for 18.248ms on Thread[1,tid=18864,Runnable,Thread*=0x782b3a7eb010,peer=0x719f3728,"main"]
E/com.example.myapplication.MainActivity: Failed to connect to MQTT broker: cannot start service org.eclipse.paho.android.service.MqttService
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.myapplication, PID: 18864
    java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/content/LocalBroadcastManager;
        at org.eclipse.paho.android.service.MqttAndroidClient.registerReceiver(MqttAndroidClient.java:450)
        at org.eclipse.paho.android.service.MqttAndroidClient.connect(MqttAndroidClient.java:428)
        at com.example.myapplication.MainActivity.onCreate(MainActivity.kt:61)
        at android.app.Activity.performCreate(Activity.java:8305)
        at android.app.Activity.performCreate(Activity.java:8284)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1417)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3626)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3782)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loopOnce(Looper.java:201)
        at android.os.Looper.loop(Looper.java:288)
        at android.app.ActivityThread.main(ActivityThread.java:7872)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.content.LocalBroadcastManager" on path: DexPathList[[zip file "/data/app/~~fZ0qv-AkddG6B4ddGCF2Yg==/com.example.myapplication-6l5Yp8DkV6twY1KctxUOoQ==/base.apk"],nativeLibraryDirectories=[/data/app/~~fZ0qv-AkddG6B4ddGCF2Yg==/com.example.myapplication-6l5Yp8DkV6twY1KctxUOoQ==/lib/x86_64, /system/lib64, /system_ext/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at org.eclipse.paho.android.service.MqttAndroidClient.registerReceiver(MqttAndroidClient.java:450) 
        at org.eclipse.paho.android.service.MqttAndroidClient.connect(MqttAndroidClient.java:428) 
        at com.example.myapplication.MainActivity.onCreate(MainActivity.kt:61) 
        at android.app.Activity.performCreate(Activity.java:8305) 
        at android.app.Activity.performCreate(Activity.java:8284) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1417) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3626) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3782) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loopOnce(Looper.java:201) 
        at android.os.Looper.loop(Looper.java:288) 
        at android.app.ActivityThread.main(ActivityThread.java:7872) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) 
I/Process: Sending signal. PID: 18864 SIG: 9
Christian Fritz
  • 20,641
  • 3
  • 42
  • 71
  • Unless you are running a broker actually ON the android device you do not connect to `localhost`. Do you really mean a broker running on the host for the emulator? – hardillb May 27 '23 at 12:00
  • Please provide enough code so others can better understand or reproduce the problem. – Community May 27 '23 at 12:52
  • Probable duplicate of https://stackoverflow.com/questions/59101906/after-changing-the-version-to-androidx-it-does-not-become-mqtt-connect/74275911#74275911 – hardillb May 27 '23 at 20:18

1 Answers1

0

It is due to android/support/v4/content/LocalBroadcastManager; which is deprecated. I've the same problem. This might solve your problem : https://github.com/eclipse/paho.mqtt.android/issues/420

  • 2
    Answers need to contain the actual details of the solution, not just a link that may break at some point (rendering the answer useless) – hardillb Jun 12 '23 at 16:58