【问题标题】:Failed to create ConnectionFactory object未能创建 ConnectionFactory 对象
【发布时间】:2019-03-16 21:39:26
【问题描述】:

我正在使用 rabbitmq 构建一个 android 聊天应用程序,并且项目构建没有任何问题。但是,我在创建 ConnectionFactory 对象时遇到了问题。它给了我以下错误

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.zabu.kyimoecho.mosaic, PID: 9002
    java.lang.NoClassDefFoundError: com.rabbitmq.client.impl.nio.-$$Lambda$NioParams$NrSUEb8m8wLfH2ztzTBNKyBN8fA
        at com.rabbitmq.client.impl.nio.NioParams.<clinit>(NioParams.java:37)
        at com.rabbitmq.client.ConnectionFactory.<init>(ConnectionFactory.java:153)
        at com.zabu.kyimoecho.mosaic.GenericIdentity.<init>(GenericIdentity.kt:11)
        at com.zabu.kyimoecho.mosaic.Admin.<init>(Admin.kt:9)
        at com.zabu.kyimoecho.mosaic.MainActivity.<init>(MainActivity.kt:10)
        at java.lang.Class.newInstance(Native Method)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1067)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2317)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
        at android.app.ActivityThread.-wrap11(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5417)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

我上网查了一下,我遇到的建议并没有解决这个问题。

我使用的是 Android 3.3.2、JDK 8 和 Rabbitmq 5.6.0。

build.gradle:

....
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
...
dependencies {
   implementation 'com.rabbitmq:amqp-client:5.6.0'
   .....
}

【问题讨论】:

    标签: java-8 rabbitmq android-studio-3.0


    【解决方案1】:

    仅供参考(如果有人遇到类似问题),我通过将 build.gradle 中的 targetSdkVersion 从 24 更改为 27 来解决此问题。

    【讨论】:

    • 我在连接到 rabbitmq 但无法正常工作时遇到问题。您能否向我提供示例代码连接? bashorun.olajide@gmail.com
    【解决方案2】:

    我也遇到过同样的问题。如果您看到此页面上的文档RabbitMQ Documentation,它表示 amqp-client:5.x 系列库适用于 Android 7 (Nougat) 及更高版本。如果您使用的是 Android 7 以下的任何 Android 版本,则可以使用 amqp-client:4.x 系列库。

    我想同时使用这两个,所以我得到了一个 amqp-client:4.x 系列库源代码,并用一个稍微不同的包名重新编译它,并使用 jar 文件,这样我就可以同时使用更新的 5.x系列适​​用于较新的 Android 版本,4.x 系列适用于较低的 Android 版本。

    【讨论】:

      猜你喜欢
      • 2013-07-19
      • 2023-01-13
      • 1970-01-01
      • 2019-01-11
      • 1970-01-01
      • 2022-10-19
      • 1970-01-01
      • 1970-01-01
      • 2016-08-16
      相关资源
      最近更新 更多