Я использую Android studio 3.1.2. В официальном документе ( 向 您 的 项目 添加 C 和 C ++ 代码 )
нет способа использовать ndk-build.It, кажется, предпочитают CMake. И когда я использую ndk-build, настройте, как показано ниже: build.gradle на уровне модуля:
compileSdkVersion 25
defaultConfig{
ndk {
moduleName "telephone"
cFlags "-fexceptions"
ldLibs "log","z","m"
stl "stlport_static"
abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
}
externalNativeBuild {
ndkBuild {
// path "$projectDir/jni/Android.mk"
arguments "NDK_APPLICATION_MK:=$projectDir/jni/Application.mk"
abiFilters "armeabi-v7a", "armeabi","arm64-v8a","x86"
cppFlags "-frtti -fexceptions"
}
}
}
sourceSets {
main {
jniLibs.srcDirs = ["src/main/jniLibs"]
jni.srcDirs = ["src/main/jni"]
}
}
buildToolsVersion '27.0.3'
и Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := addcomputer
LOCAL_SRC_FILES := src/main/jni/addcomputer-jni.cpp
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
иApplication.mk:
APP_ABI:=armeabi-v7a, arm64-v8a, x86, x86_64
APP_STL:=stlport_shared
APP_CPPFLAGS += -fexceptions
Но как бы я ни менял конфигурацию, поведение при сборке возвращает ошибку, подобную этой:
Error: Your project contains C++ files but it is not using a supported
native build system.
Consider using CMake or ndk-build integration. For more information, go to:
https://d.android.com/r/studio-ui/add-native-code.html
Alternatively, you can use the experimental plugin:
https://developer.android.com/r/tools/experimental-plugin.html
И для ссылки на эту официальную веб-страницу ndk-build Я установил GNU Make 3.81 и экспортировал GNUMAKE, но не работал.Я нашел много справочных материалов в Интернете, хотя я настраиваю, как они сказали, но ошибка все еще появляется. Я не знаю, что делать. Мне нужно использовать Android.mk и ndk-build. Потому что на этой веб-странице сказано: Создание C ++ Binder-интерфейсов с помощью aidl-cpp
Кто-нибудь может помочь? Пожалуйста.