0

私はアンドロイド開発に不慣れで、解決できないと思われる問題に遭遇しました。Android アプリは arduino デバイスと通信し、デバイスに情報を送信したり、デバイスから情報を取得したりできる必要があります。Bluetooth デバイスを使用して 2 つの間の接続をセットアップし、通信を容易にするために amarino を使用しています。

これで、アマリノと接続してデータを送受信できるようになりました。これをアプリから実行したいと考えています。次の行を入力すると問題が発生します。

private static final String DEVICE_ADDRESS = "07:12:04:16:68:18"; 
Amarino.connect(this, DEVICE_ADDRESS);

数字は、arduino デバイスに接続されている Bluetooth アダプターの MAC アドレスです。携帯電話でアプリを実行するとすぐに、予期しないエラーが原因で強制終了します。今言ったように、私はAndroidに関しては少し初心者なので、logCatをインストールしてログ情報を取得しようとしました。私が得たのは、このやや役に立たないエラーメッセージだけでした:

com.example.projectgreetv3/.StartingPlace 10-24 15:22:55.140 E/AndroidRuntime(4906): java.lang.RuntimeException: アクティビティ ComponentInfo をインスタンス化できません {com.example.projectgreetv3/com.example.projectgreetv3.StartingPlace}: java.lang.ClassNotFoundException: ローダーの com.example.projectgreetv3.StartingPlace dalvik.system.PathClassLoader[/data/app/com.example.projectgreetv3-1.apk] 10-24 15:22:55.140 E/AndroidRuntime(4906) : 原因: java.lang.ClassNotFoundException: ローダーの com.example.projectgreetv3.StartingPlace dalvik.system.PathClassLoader[/data/app/com.example.projectgreetv3-1.apk] 10-24 15:22:55.148 W/ ActivityManager(539): 強制終了アクティビティ com.example.projectgreetv3/.StartingPlace 10-24 15:21:51.726 I/UinboxLogger(4585): [UinboxReceiver] onReceive() >> intent.getData() : com.example.projectgreetv3 10-24 15:21:52.382 I/UninstallAppProgress(4575): pkg のアンインストールが完了しました: com.example.projectgreetv3 10-24 15:22:52.523 D/PackageManager(539): パッケージ com.example.projectgreetv3 をスキャンしています

私は機知に富んでいるので、誰かがこれを手伝ってくれることを願っています。

詳細については: - Arduino: - http://www.arduino.cc/ - Amarino: http://www.amarino-toolkit.net/

4

1 に答える 1

0

スタック トレース (logcat 内) をさらに詳しく調べると、おそらくこのクラッシュの原因が NetworkOnMainThreadException であることがわかります。(Android 3.0以上をご利用の場合)

すべてのネットワーク通信を別のスレッド (Thread/ASyncTask) で行っていることを確認してください。

http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html

于 2012-10-24T13:32:03.827 に答える