我已經使用一個庫模塊創建了一個支持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」)' –