我想達到一個簡單的C斷點++代碼:無法達到在C斷點++採用了Android Studio和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告訴我已經連接了斷點。
我正在使用Android Studio 2.2 Preview 6
任何人都可以幫我嗎?
查找到 「創建Hello-JNI與Android工作室」 在https://codelabs.developers.google.com/代碼實驗室。您的代碼與代碼實驗室中的代碼存在差異,您可能會使用不同的gradle插件 - 或其他。 – marcinj
你指的例子不夠好,它沒有使用ndk-build(所以沒有Android.mk都沒有Application.mk文件),每個gradle版本在發佈到發佈之間都有很大的變化,它也不提供任何可用的ndk gradle選項參考 –
您是否找到解決方案? – tower120