を使用してC++でのブレークポイントに到達することができません:私は、単純なC++コードでのブレークポイントに到達しようとしているAndroidのメーカーとndkBuild
ここで、ここでの.cpp
#include <jni.h>
#include <string>
extern "C"
{
jstring Java_com_comscore_android_app_MainActivity_stringFromJNI(
JNIEnv* env,
jobject /* this */) {
std::string hello = "Hello from C++ lalalaaaaaa";
return env->NewStringUTF(hello.c_str());
}
}
のGradleファイル:
android {
compileSdkVersion 23
buildToolsVersion "24.0.1"
defaultConfig {
applicationId "com.comscore"
minSdkVersion 10
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
ndkBuild {
arguments "NDK_APPLICATION_MK:=src/main/jni/Application.mk"
}
}
}
externalNativeBuild{
ndkBuild{
path "src/main/jni/Android.mk"
}
}
...
}
Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := native-lib.cpp
LOCAL_MODULE := native-lib
LOCAL_LDLIBS := -llog
LOCAL_CPPFLAGS += -fsigned-char -fexceptions -frtti -g -O0 -std=c++0x -std=gnu++0x
LOCAL_CFLAGS += -fsigned-char -fexceptions -frtti -g -O0 -std=c++0x -std=gnu++0x
include $(BUILD_SHARED_LIBRARY)
そしてApplication.mk
APP_ABI := all
APP_STL := gnustl_static
アプリケーションがコンパイルされ、作品が、私は、デバッガを実行中にC++コード内の任意のブレークポイントで停止することはできませんよ。私はそれがネイティブライブラリをどのようにロードするのか見ることができますが、どこで停止するのではなく、アンドロイドのスタジオはブレークポイントが付けられていると私に教えています。
私は誰が私を助けることができるのAndroid Studioの2.2プレビュー6
を使用していますか?
はhttps://codelabs.developers.google.com/で、コードラボ "のAndroid StudioでのHello-JNIを作成する" を調べてください。あなたのコードにはコードラボのものと違いがあり、別のgradleプラグインを使用しているかもしれません。 – marcinj
あなたが指している例は十分ではありません.ndk-buildを使用していないので(Android.mkもApplication.mkファイルもありません)、各gradleのバージョンはリリースごとに大きく変更されます。利用可能なndk gradleオプションのリファレンス –
解決策は見つかりましたか? – tower120