アンドロイドアプリケーションにndk-gdbを添付できません

私はAndroidアプリケーションにndk-gdbを添付しようとしています。

私は Android-ndk-r6b を使用しています。デバイスはAndroid 2.3、Samsung Galaxy S IIです。

I followed all the steps in this example Click here for the example

また、別のアプリケーションでgdbをアタッチしようとしたときに、1つのアプリケーションで試しましたが、最初のアプリケーション自体に常に接続されていることを示す冗長性があります

Found package name: <1st attached package name>

このコマンドを初めて使用して ndk-gdb を起動しようとしました:

 ndk-gdb --start --force --verbose

以下のコマンドで別のアプリケーションにアタッチしようとしましたが、成功できませんでした:

ndk-gdb --launch=com.example.hellogdbserver.HelloGdbServer --force --verbose

私は常に最初のアプリケーションで以下のエラーが発生しています:

ERROR: Non-debuggable application installed on the target device.Please re-install the debuggable version!

これは私が得ている完全なシェルログです

    sh-4.1$ ndk-gdb --verbose --start --force
    Android NDK installation path: /cygdrive/c/Android/android-ndk
    Using default adb command: /cygdrive/c/Android/android-sdk-windows/platform-tools/adb
    ADB version found: Android Debug Bridge version 1.0.26
    Using final ADB command: '/cygdrive/c/Android/android-sdk-windows/platform-tools/adb'
    Using auto-detected project path: /cygdrive/d/EclipseTestWorkspace/hello-gdbserver
    Found package name: com.example.hellogdbserver
    ABIs targetted by application: armeabi
    Device API Level: 10
    Device CPU ABIs: armeabi-v7a armeabi
    Compatible device ABI: armeabi
    Found debuggable flag: true
    Found device gdbserver: /data/data/com.example.hellogdbserver/lib/gdbserver
    Using gdb setup init: /cygdrive/d/EclipseTestWorkspace/hello-gdbserver/libs/armeabi/gdb.setup
    Using toolchain prefix: /cygdrive/c/Android/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/arm-linux-androideabi-
    Using app out directory: /cygdrive/d/EclipseTestWorkspace/hello-gdbserver/obj/local/armeabi
    ERROR: Could not extract package's data directory. Are you sure that
           your installed application is debuggable?
    sh-4.1$

上記のエラーを解決するにはどうすればいいのですか?また、新しいパッケージにアタッチする方法も教えてください。

私の電話は根付いていません。これがgdbに影響しないことを願っています。

これも同様に役立たなかった類似の問題へのリンクをご覧ください。私の電話は新しい電話であり、現在の開発中のアプリ以外のアプリはありません。 (サムスンの携帯電話に付随するパッケージのみが存在し、市場からダウンロードされたアプリはありません)

Thanks & Regards,
SSuman185


Please go through the link Debugging native code in android app using the android ndk gdb

11
私のSamsung Infuseで同じことを見ている。あなたはこれに解決策を見つけましたか?
追加された 著者 Androider,
マニフェストで android:debuggable = "true">を設定しようとしましたか?
追加された 著者 Lennart,
はい、私はすでにこのフラグをtrueに設定しています。 - android:icon = "@ drawable/icon" android:label = "@ string/app_name" android:debuggable = "true">
追加された 著者 Suman,

4 答え

この問題は、ライブラリプロジェクトをデバッグしようとすると発生します。 ndk-gdbは、「メイン」プロジェクトではないプロジェクトにアタッチすることができません。

開始アプリケーションプロジェクトにjniコードを入れなければなりません。

6
追加された

まず、デバッグ可能なバージョンのアプリケーションを構築していることを確認してください。 AndroidManifest.xmlファイルには、android:debuggable = "true"タグが含まれている必要があります。

また、binディレクトリのAPKファイルを展開して解凍する(ZIPファイルの名前が変更された)ことを確認し、lib \ armeabiフォルダにgdbserverファイルが含まれていることを確認することもできます。

上記の両方の条件が満たされている場合は、パッケージを手動でデバイスにインストールしてください。

\platform-tools\adb.exe install -r 

adb.exeの出力を注意深く観察してください。エラーが表示された場合は、問題が説明されている可能性があります。

5
追加された
lib/armeabiフォルダにadbserverファイルがありませんでした。私はアンドロイドを設定しています:debuggable = "true"とndkビルドNDK_DEBUG = 1を実行しています.Apple.mkでAPP_OPTIM:= debugを設定しています。 adbserverがarmeabiフォルダにコンパイルされて挿入されるようにする方法についての提案はありますか?
追加された 著者 Cypress Frankenfeld,

デバッグするためにjni/Application.mkにAPP_OPTIMが設定されていることを確認してください

3
追加された
その旗は何をするのですか?それはNDK_DEBUG = 1と異なるのですか?
追加された 著者 Cypress Frankenfeld,

http://developer.samsung.com/によるとforum/thread/ndk-debugging-with-gdb/77/178834 run-asが壊れているため、一部のSamsungの携帯電話は根付きのないデバッグ可能ではありません

See run-as Package 'a.b.c' is unknown - Galaxy S4 Jellybean or Android 4.3 for my solution

0
追加された