web-dev-qa-db-ja.com

Android Studio?

Android StudioはC++コードのブレークポイントで停止しません、これは私がこれまでにやったことです:

  1. AndroidManifest.xmlで:

    Android:debuggable="true"
    
  2. Build.gradleで(これが問題になる可能性があります):

    sourceSets.main {
      jniLibs.srcDir 'src/main/libs'
      jni.srcDirs = []
    }
    
    task ndkBuild(type: Exec) {
      commandLine Android.ndkDirectory.getAbsolutePath() + '\\' + 'ndk-build.cmd', '-C', file('src/main/jni').absolutePath, 'NDK_DEBUG=1'
    }
    
    tasks.withType(JavaCompile) {
      compileTask -> compileTask.dependsOn ndkBuild
    }
    
    1. Android Studioでネイティブアプリケーションとしてアプリケーションを構成しました

    2. C++コードにブレークポイントを配置する

    3. アプリをデバッグする

これは、「ネイティブデバッグセッションの起動」と言っているため、機能しているようです。さらに、停止ボタンでアプリを一時停止できますが、ブレークポイントは機能していません。

ご協力ありがとうございました

15
PadThai

Build.gradleの構文では、 gradleの実験的なプラグイン を使用していないように見えます。これがないと、Androidでネイティブc/c ++をデバッグできません= studio詳細については、こちらをお読みください: Android NDK Preview

4
VitalyD
  1. 「実行」->「デバッグ構成」「デバッガー」タブで、「ネイティブ」として「デバッグの種類」を選択します。 「起動前」のフィールドで、Android studioが競合を報告した場合、「修正」の推奨事項を受け入れます。Android studioはlldbライブラリをダウンロードします。

  2. 「デバッグ」下部をクリックして、デバッガーがプロセスにアタッチされるまで待ちます。

  3. これで、デバッグウィンドウで変数を確認できます。

7
Hong

[〜#〜] lldb [〜#〜] をインストールすると、ネイティブ/デュアルデバッグが利用可能になります。

Run/Debug Configurations

6
Martin Zeitler

まだ探している場合、Android Studioはndk-buildとCMakeプロジェクトの直接統合のサポートを最近追加しました: http://tools.Android.com/tech-docs/external-c-builds

よろしく、ジョモ

2
Jomo Fisher

これを試すことができます:

1. app/build.gradleで:

依存関係ラベルで:

releaseCompile project(path:':youModuleName',configuration:'release')
debugCompile project(path:':youModuleName',configuration:'debug')

2. in youModule/build.gradle:

at Android label:

publishNonDefault true

デモ:

https://github.com/sunalong/JNIDemo

1
sunalong

Android Studio 3

Android Studio 3では、プロセス全体が簡単になります。

開始するには、次のようなシンプルなサンプルアプリを手に入れてください: https://github.com/googlesamples/Android-ndk/tree/2020d9674a6601e8219eed2921f5028beb856a24/hello-gl2/

次に、C++またはJavaのいずれかにブレークポイントを設定し、実行:実行>デバッグ

また、 ネイティブ呼び出し from Javaに進み、C++コードに入ることができます。

enter image description here