我已经使用一个库模块创建了一个支持C++的Android Studio项目。一个名为native-lib.cpp
的C++文件被自动添加到我的项目中。当我现在构建项目时,* .so文件的输出名称是libnative-lib.so
。Android Studio重命名本机库
如果我将native-lib.cpp
重命名为其他任何内容(使用重构/重命名功能),则C++文件会从我的项目中消失,直到我更改名称为止。
那么如何重命名我的本地库,或设置输出文件的名称?
我已经使用一个库模块创建了一个支持C++的Android Studio项目。一个名为native-lib.cpp
的C++文件被自动添加到我的项目中。当我现在构建项目时,* .so文件的输出名称是libnative-lib.so
。Android Studio重命名本机库
如果我将native-lib.cpp
重命名为其他任何内容(使用重构/重命名功能),则C++文件会从我的项目中消失,直到我更改名称为止。
那么如何重命名我的本地库,或设置输出文件的名称?
我很高兴你能弄明白。无论如何,我会在这里发布答案供参考。
的CMakeLists.txt < < =应该在你的应用程序模块的根目录(my_project/app/CMakeLists.txt
)
# https://developer.android.com/studio/projects/add-native-code.html#create-cmake-script
# Minimum version of CMake
cmake_minimum_required(VERSION 3.4.1)
# adding CEC library
# add_library structure: add_library(lib_name lib_type_STATIC_or_SHARED source_file_path)
add_library(my_lib_name SHARED src/main/jni/my_cpp_file.cpp)
# include_directories is to provide the path to you native lib code
# include_directories structure: include_directories(native_lib_folder_path)
include_directories(src/main/jni/)
# adding Android log library
# find_library is used to find NDK API libraries (built in NDK libs)
# find_library structure: find_library(name_you_want_to_call_the_lib lib_name_in_ndk_api)
find_library(log-lib log)
# linking log lib to our native lib
# once you find the library, you have to link that library with your native library
# target_link_libraries structure: target_link_libraries(you_native_lib lib_found_using_find_library)
target_link_libraries(my_lib_name ${log-lib})
然后在的build.gradle,请执行下列操作
externalNativeBuild {
cmake {
path 'CMakeLists.txt'
}
}
然后,做了充分的清洁,使用Build菜单中提供的选项刷新C++项目。
而像@bitwise发布,如果必须删除build
和.externalNativeBuild
文件夹的内容并重建项目。
我有同样的问题我的CMakeLists.txt是在cpp文件夹中,但在我重命名我的cpp文件名之前没有问题。 – david
输出文件的名称有什么问题? –
查看项目中的Android.mk文件。 – Moved
如果您正在使用新的Android Studio C++支持功能,请向我们展示'build.gradle',或者如果您使用'CMake',则显示'CMakeLists.txt'文件。此外,确保在更改名称后,在加载库时在代码中更改它:'System.loadLibrary(“myname.so”)' –