2016-04-07 5 views
5

Ich benutze NDK mit dem experimentellen Gradle-Plugin, und anfangs konnte ich meinen nativen Code debuggen.Android NDK kann nativen Code mit zwei Gradle-Plugins nicht debuggen

Dann sah ich diese Ausgabe https://github.com/googlesamples/android-ndk/issues/119 und diesen Blogpost http://frogermcs.github.io/json-parsing-with-flatbuffers-in-android/. Dieser Ansatz wäre großartig, weil ich das stabile Gradle-Plugin für Android-spezifischen Code und das experimentelle Gravel-Plugin für den nativen Code verwenden könnte, was großartig wäre, um beispielsweise Databinding zu verwenden. Ich konnte diese Struktur verwenden, aber ich verlor die Fähigkeit, nativen Code zu debuggen.

Ich habe ein Beispielprojekt erstellt, das mein Problem veranschaulicht. https://github.com/4brunu/AndroidNDKDebug

Dort finden Sie zwei Projekte. Das erste "Hallo-jni-one-gradle-plugin", benutze nur das experimentelle Gradle-Plugin, und ich bin in der Lage, den nativen Code zu debuggen. Der zweite "Hallo-jni-zwei-Gradle-Plugins", ich benutze das stabile Gradle-Plugin für Android-spezifischen Code und das experimentelle Gradle-Plugin für den nativen Code, und ich bin nicht in der Lage, den nativen Code zu debuggen.

Mache ich etwas falsch? Könnten Sie mir bitte helfen, den Debuggen von systemeigenem Code im zweiten Projekt zu aktivieren?

Dank

Antwort

3

ich die gleiche Einstellung in einem meiner Projekte verwenden, mit Android Studio 2.1-preview5, gradle experimentelle 0.7.0-alpha5 und gradle Plugin 2.1.0-alpha5 und Debugging Werke .

Das Geheimnis fehlende Schritt ist, den Pfad zu Ihrem nicht abisolierten Libs an den Debugger hinzuzufügen: lib/build/intermediates/binaries/release/obj/ABI

ndk debug symbol directories

+0

Dank für Sie anwser, aber ich cound't diesen Weg gefunden ... Kann Bitte sehen Sie sich mein Beispielprojekt an. Danke https://github.com/4brunu/AndroidNDKDebug –

+0

Nachdem Sie einen Build ausgelöst haben, sollte Ihr Pfad 'shared/build/intermediates/binaries/release/obj/x86' sein, wenn Sie ein x86-Gerät verwenden oder der Emulator "shared/build/intermediates/binaries/release/obj/armeabi-v7a", wenn Sie ein armea-v7a-Gerät verwenden. Vielleicht müssen Sie auch Ihre Plugin-Versionen in Ihrer Probe aktualisieren, zumindest auf 2.0.0 (stabil) und 0.6.0 (experimentell) – ph0b

+0

Vielen Dank, das hat den Trick gemacht :) –

Verwandte Themen