2016-07-25 127 views
1

我有一個在eclipse中配置的android項目,它可以很好地與ant和ndk-build一起使用一些自定義的Android.mk和Application.mk文件。我需要將它們移動到Android Studio,我不想使用它附帶的CMake,所以我只想保留我的舊.mk文件。要做到這一點,我開始用下面的代碼簡單的Hello World例子:Gradle不使用ndkBuild編譯

這裏的原生lib.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代碼從來沒有編譯過,任何機構可以幫我解決這個問題嗎?

謝謝!

+0

請發佈編譯錯誤。 –

回答

0

它沒有編譯任何東西,那是問題所在。現在我手動清理構建文件夾後解決了