1

wmqtt.jar を使用して MQTT サービスを実装しようとしています。ほとんどの人のように、私は他の人の例を見ることから始めました。Dale Lane の投稿http://dalelane.co.uk/blog/?p=1599への参照をいくつか見つけ、http: //mosquitto.org/2011/11/android-mqtt-example-から彼のサービスのバージョンをダウンロードしました。プロジェクト/ . 私の問題は、エミュレーターで wmqtt.jar を使用して実行しようとするすべての例が、java.lang.ClassNotFoundException で MqttSimpleCallback を参照するクラスになるとすぐにコードがクラッシュすることです。これを実行するために私がしなければならない「特別な」ことはありますか?通常、問題は私のコードにあると思いますが、私が試した他のソースからのすべての例が同じ問題でクラッシュするため、セットアップで何かを見逃していると想定する必要がありますか?

mosquitto.org のコードが壊れたときの LogCat は次のようになります。

04-13 21:48:59.447: D/AndroidRuntime(303): Shutting down VM
04-13 21:48:59.447: W/dalvikvm(303): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
04-13 21:48:59.548: E/AndroidRuntime(303): FATAL EXCEPTION: main
04-13 21:48:59.548: E/AndroidRuntime(303): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.mosquitto.android.mqttdemo/org.mosquitto.android.mqttdemo.MQTTDemo}: java.lang.ClassNotFoundException: org.mosquitto.android.mqttdemo.MQTTDemo in loader dalvik.system.PathClassLoader[/data/app/org.mosquitto.android.mqttdemo-2.apk]
04-13 21:48:59.548: E/AndroidRuntime(303):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
04-13 21:48:59.548: E/AndroidRuntime(303):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
04-13 21:48:59.548: E/AndroidRuntime(303):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
04-13 21:48:59.548: E/AndroidRuntime(303):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
04-13 21:48:59.548: E/AndroidRuntime(303):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-13 21:48:59.548: E/AndroidRuntime(303):  at android.os.Looper.loop(Looper.java:123)
04-13 21:48:59.548: E/AndroidRuntime(303):  at android.app.ActivityThread.main(ActivityThread.java:4627)
04-13 21:48:59.548: E/AndroidRuntime(303):  at java.lang.reflect.Method.invokeNative(Native Method)
04-13 21:48:59.548: E/AndroidRuntime(303):  at java.lang.reflect.Method.invoke(Method.java:521)
04-13 21:48:59.548: E/AndroidRuntime(303):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-13 21:48:59.548: E/AndroidRuntime(303):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-13 21:48:59.548: E/AndroidRuntime(303):  at dalvik.system.NativeStart.main(Native  Method)
04-13 21:48:59.548: E/AndroidRuntime(303): Caused by: java.lang.ClassNotFoundException: org.mosquitto.android.mqttdemo.MQTTDemo in loader dalvik.system.PathClassLoader[/data/app/org.mosquitto.android.mqttdemo-2.apk]
04-13 21:48:59.548: E/AndroidRuntime(303):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
04-13 21:48:59.548: E/AndroidRuntime(303):  at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
04-13 21:48:59.548: E/AndroidRuntime(303):  at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
04-13 21:48:59.548: E/AndroidRuntime(303):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
04-13 21:48:59.548: E/AndroidRuntime(303):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
04-13 21:48:59.548: E/AndroidRuntime(303):  ... 11 more
4

3 に答える 3

1

http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.java.git/から入手できる Paho Java クライアント ライブラリを使用することをお勧めします。ia92 と同じコード ベースではありませんが、ライセンスははるかに友好的です。

http://mqtt.org/softwareに記載されているように、ia92 はもはや開発またはサポートされていません。

于 2012-04-13T18:14:25.993 に答える
0

wmqtt.jar と必要なライブラリを libs ディレクトリにコピーしてください。次に、それを再構築して、エミュレーターにプッシュします。

jar ファイルの欠落は、class def not found 例外が発生する大きな理由です。

于 2012-04-13T17:37:08.000 に答える
0

日食を使用していますか?パッケージ エクスプローラーで jar を見つけて右クリックし、[ビルド パス] => [ビルド パスに追加] を選択します。再試行?

于 2012-11-06T16:37:52.740 に答える