2016-07-26 40 views
2

我想達到一個簡單的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

任何人都可以幫我嗎?

+0

查找到 「創建Hello-JNI與Android工作室」 在https://codelabs.developers.google.com/代碼實驗室。您的代碼與代碼實驗室中的代碼存在差異,您可能會使用不同的gradle插件 - 或其他。 – marcinj

+0

你指的例子不夠好,它沒有使用ndk-build(所以沒有Android.mk都沒有Application.mk文件),每個gradle版本在發佈到發佈之間都有很大的變化,它也不提供任何可用的ndk gradle選項參考 –

+0

您是否找到解決方案? – tower120

回答

0

在我來說,我有兩個模塊,一個使用C++代碼(庫),另一個使用應用程序使用庫模塊

問題是我試圖調試應用模塊的庫模塊,所以我只需要指定文件夾的位置調試符號爲:

運行 - >編輯配置... - > Debuggerand在符號目錄選項卡中添加正確的路徑。例如:

/path_to_my_project/lib_module/build/intermediates/ndkBuild/flavor/debug/obj/local/x86 

enter image description here

0

app.imp文件包含 「< 」小TYPE =「 native_android_gradle」>」,選擇= SELECTED_BUILD_VARIANT ..

檢查,如果值= 「調試」