Android Studio 2.3 CMake 不显示错误并且不会编译 C++ 代码
Android Studio 2.3 CMake doesn't show errors and won't compile C++ code
所以我正在尝试编写我的第一个本机库以在 Android 和 iOS 中重用我的 C++ 代码,但无法将其添加到 Android 下的 运行 Studio 2.3
我按照 instructions 找到了这封信(我希望),其中主要包括:
写一个 CMakeLists.txt 文件包含(在我的例子中):
cmake_minimum_required(VERSION 3.4.1)
add_library(
test-lib
STATIC
src/main/cpp/test.cpp
src/main/cpp/cpp_wrapper.cpp)
include_directories(src/main/cpp/include/)
find_library(
log-lib
log )
target_link_libraries(test-lib ${log-lib} )
add_library( app-glue
STATIC
${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c )
target_link_libraries( test-lib app-glue ${log-lib} )
然后 link CMake 文件到 gradle 在你的模块 build.gradle 文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion '25.0.2'
defaultConfig {
applicationId 'com.mysample.id'
minSdkVersion 19
targetSdkVersion 25
versionCode 9
versionName "1.3.0"
}
buildTypes {
release { ... }
}
productFlavors {
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
}
repositories {
maven { ... }
}
dependencies { ... }
这应该足够了。可悲的是它不是。
我只是想不通我在这里错过了什么。
有一次(实际上只有一次)我实际上从 CMake 收到一条错误消息,因为 cpp 文件中有意放置错字,但这是我从中看到的唯一信息。没有创建库 *.so 文件,当然 none 与 apk 打包在一起,因此应用程序在尝试加载它时立即崩溃。
更新:我找错地方了,实际上在 app/.externalNativeBuild/cmake 中有一些来自 CMake 的文件反映了构建配置和 cpu 架构,它们甚至包括一个 test-lib.dir
目录,但这是空的。我查看了文件以查看是否有一些线索,但找不到任何有趣的东西。
欢迎提出任何建议!
最后,我创建了一个新项目,(再次)执行了所有说明,将我现有的工作复制到新项目中,瞧。
我们可能永远不会知道原因是什么...
所以我正在尝试编写我的第一个本机库以在 Android 和 iOS 中重用我的 C++ 代码,但无法将其添加到 Android 下的 运行 Studio 2.3
我按照 instructions 找到了这封信(我希望),其中主要包括:
写一个 CMakeLists.txt 文件包含(在我的例子中):
cmake_minimum_required(VERSION 3.4.1)
add_library(
test-lib
STATIC
src/main/cpp/test.cpp
src/main/cpp/cpp_wrapper.cpp)
include_directories(src/main/cpp/include/)
find_library(
log-lib
log )
target_link_libraries(test-lib ${log-lib} )
add_library( app-glue
STATIC
${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c )
target_link_libraries( test-lib app-glue ${log-lib} )
然后 link CMake 文件到 gradle 在你的模块 build.gradle 文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion '25.0.2'
defaultConfig {
applicationId 'com.mysample.id'
minSdkVersion 19
targetSdkVersion 25
versionCode 9
versionName "1.3.0"
}
buildTypes {
release { ... }
}
productFlavors {
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
}
repositories {
maven { ... }
}
dependencies { ... }
这应该足够了。可悲的是它不是。 我只是想不通我在这里错过了什么。 有一次(实际上只有一次)我实际上从 CMake 收到一条错误消息,因为 cpp 文件中有意放置错字,但这是我从中看到的唯一信息。没有创建库 *.so 文件,当然 none 与 apk 打包在一起,因此应用程序在尝试加载它时立即崩溃。
更新:我找错地方了,实际上在 app/.externalNativeBuild/cmake 中有一些来自 CMake 的文件反映了构建配置和 cpu 架构,它们甚至包括一个 test-lib.dir
目录,但这是空的。我查看了文件以查看是否有一些线索,但找不到任何有趣的东西。
欢迎提出任何建议!
最后,我创建了一个新项目,(再次)执行了所有说明,将我现有的工作复制到新项目中,瞧。
我们可能永远不会知道原因是什么...