【问题标题】:Gradle is not compiling using ndkBuildGradle 未使用 ndkBuild 进行编译
【发布时间】:2016-07-25 16:44:07
【问题描述】:

我在 Eclipse 中配置了一个 android 项目,该项目与 ant 和 ndk-build 配合使用,并带有一些自定义的 Android.mk 和 Application.mk 文件。我需要将它们移动到 Android Studio 并且我不想使用它附带的 CMake,所以我只想保留我的旧 .mk 文件。为此,我从一个简单的 hello world 示例开始,代码如下:

这里是 native-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 代码从未编译过,任何人都可以帮助我解决这个问题吗?

谢谢!

【问题讨论】:

  • 请发布编译错误。

标签: android c++ android-studio android-ndk android-gradle-plugin


【解决方案1】:

它没有编译任何东西,这就是问题所在。现在我手动清理构建文件夹后解决了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    • 2020-06-02
    相关资源
    最近更新 更多