11

これまでのところ、Eclipse 内でデバッグできた唯一の方法は、Scala IDE のバグのある 2.8 ブランチで Treeshaker を使用することです。Treeshaker を使用せずに Scala IDE でビルドしようとすると、scala-on-android のこの長いスレッドごとに ClassNotFound エラーが発生します。

sbt-android でビルドして Eclipse 内でデバッグするのが理想ですが、うまくいきませんでした。私が達成できた sbt-android プロジェクトのデバッグに最も近いのは、android:package-debug コマンドで sbt-android プロジェクトをビルドし、android:start-emulator コマンドで実行可能ファイルを開始し、DDMS をアプリケーションのスレッド。

ただし、デバッガーをスレッドに接続した後にのみ実行されるブレークポイントを設定しましたが、それらのいずれにも到達してもスレッドが停止することはありませんでした。

Scala 2.8 ベースの Scala IDE で Treeshaker 以外のツールを使用して、Eclipse で Scala Android コードをデバッグできた人はいますか?

更新: sbt、sbteclipse、および android-plugin を使用してコマンド ラインからビルドした後、Eclipse で正常にデバッグ (ビルドではありません) しています。

私が行ったことは、Eclipse の新しい Android プロジェクト メニューを使用し、既存のソースに接続して、それを ./src/main ディレクトリにポイントすることでした。すると、Eclipse が Android の設定を認識し、DDMS がタスクを Eclipse Android プロジェクトに属するものとして認識しました。

また、ビルド パスから src フォルダーを削除し、./scala フォルダーを追加して、Eclipse プロジェクトの Java ビルド パス ソース フォルダーを再構成する必要がありました。次に、Scala ファイルにブレークポイントを追加するために Eclipse を再起動する必要がありました。

Eclipse を使用して Android アプリケーションをビルドおよびデバッグする際の難しさについて、興味深い議論があります。

4

2 に答える 2

11

一般に、Eclipse を使用して Android で実行されている Scala コードをデバッグするとうまく機能し、通常の (Android 以外の) アプリケーションで Scala をデバッグするのとほぼ同じように動作します。

私は sbt-android と android:start-emulator または android:start-device で sbt を使用しています。

アプリケーションの起動をデバッグする必要があるかどうかに応じて、デバイスまたはエミュレーターの開発者設定で、デバッガーを待機するオプションを設定します。これを行うには、「DevTools」/「開発設定」を実行します。アプリケーションを選択し、「Wait for Debugger」にチェックを入れます。

次に、DDMS でデバッグするプロセスを選択する必要があります。デバッグ ポートが表示されていることを確認してから、Eclipse デバッガーに接続します。

デバッガーがブレークポイントをインストールしない原因として考えられるのは、ソース コード行に直接対応するバイト コードがないことです。理解のために頭に浮かぶ。

于 2011-11-13T19:40:18.970 に答える