Mqtt 库迁移到AndroidX

Mqtt 库迁移到AndroidX,mqtt,androidx,paho,Mqtt,Androidx,Paho,我正在我的AndroidX应用程序中使用Paho MQTT库。对于Landroid/support/v4/content/LocalBroadcastManager,我收到异常NoClassDefFoundError。我发现库使用了去擦洗导入: import android.support.v4.content.LocalBroadcastManager; 引发异常的函数: private void registerReceiver(BroadcastReceiver receiver) {

我正在我的AndroidX应用程序中使用Paho MQTT库。对于
Landroid/support/v4/content/LocalBroadcastManager
,我收到异常
NoClassDefFoundError
。我发现库使用了去擦洗导入:

import android.support.v4.content.LocalBroadcastManager;
引发异常的函数:

private void registerReceiver(BroadcastReceiver receiver) {
    IntentFilter filter = new IntentFilter();
            filter.addAction(MqttServiceConstants.CALLBACK_TO_ACTIVITY);
            LocalBroadcastManager.getInstance(myContext).registerReceiver(receiver, filter);
            receiverRegistered = true;
}
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.eurbon.pahomqttclientexample, PID: 17368
    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 org.eclipse.paho.android.service.MqttAndroidClient.connect(MqttAndroidClient.java:334)
        at paho.android.mqtt_example.MainActivity.MqttConnect(MainActivity.java:121)
        at paho.android.mqtt_example.MainActivity.onCreate(MainActivity.java:63)
        at android.app.Activity.performCreate(Activity.java:6679)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.content.LocalBroadcastManager" on path: DexPathList[[zip file "/data/app/com.eurbon.pahomqttclientexample-1/base.apk"],nativeLibraryDirectories=[/data/app/com.eurbon.pahomqttclientexample-1/lib/x86, /system/lib, /vendor/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
        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 org.eclipse.paho.android.service.MqttAndroidClient.connect(MqttAndroidClient.java:334) 
        at paho.android.mqtt_example.MainActivity.MqttConnect(MainActivity.java:121) 
        at paho.android.mqtt_example.MainActivity.onCreate(MainActivity.java:63) 
        at android.app.Activity.performCreate(Activity.java:6679) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 
        at android.app.ActivityThread.-wrap12(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6119) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 
如何解决这个问题?我应该下载源代码并重新编译库吗?为什么在最新版本中还没有这样做

全部例外:

private void registerReceiver(BroadcastReceiver receiver) {
    IntentFilter filter = new IntentFilter();
            filter.addAction(MqttServiceConstants.CALLBACK_TO_ACTIVITY);
            LocalBroadcastManager.getInstance(myContext).registerReceiver(receiver, filter);
            receiverRegistered = true;
}
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.eurbon.pahomqttclientexample, PID: 17368
    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 org.eclipse.paho.android.service.MqttAndroidClient.connect(MqttAndroidClient.java:334)
        at paho.android.mqtt_example.MainActivity.MqttConnect(MainActivity.java:121)
        at paho.android.mqtt_example.MainActivity.onCreate(MainActivity.java:63)
        at android.app.Activity.performCreate(Activity.java:6679)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.content.LocalBroadcastManager" on path: DexPathList[[zip file "/data/app/com.eurbon.pahomqttclientexample-1/base.apk"],nativeLibraryDirectories=[/data/app/com.eurbon.pahomqttclientexample-1/lib/x86, /system/lib, /vendor/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
        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 org.eclipse.paho.android.service.MqttAndroidClient.connect(MqttAndroidClient.java:334) 
        at paho.android.mqtt_example.MainActivity.MqttConnect(MainActivity.java:121) 
        at paho.android.mqtt_example.MainActivity.onCreate(MainActivity.java:63) 
        at android.app.Activity.performCreate(Activity.java:6679) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 
        at android.app.ActivityThread.-wrap12(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6119) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 

在将项目迁移到AndroidX之后,我认为您不能再使用
android.support.v*
。如果您尝试从
androidx.core
而不是
android.support.v4
使用内容支持库,会怎么样;我认为这将为你解决这个问题

导入androidx.core.content.LocalBroadcastManager;
如果您使用的是Android Studio,intellisense将非常有助于解决其他依赖性问题和/或由于AndroidX迁移和支持库提供程序的建议更改而导致的其他错误/警告