2016-10-10 4 views
1

Я создал проект Android Studio с поддержкой C++ с одним библиотечным модулем. В мой проект был добавлен файл C++ с именем native-lib.cpp. Когда я сейчас создаю проект, выходное имя файла * .so равно libnative-lib.so.Android Studio переименовать родную библиотеку

Если я переименую native-lib.cpp на все остальное (используя функцию refactor/rename), файл C++ просто исчезает из моего проекта, пока я не изменю имя.

Итак, как мне переименовать мою собственную библиотеку или задать имя выходного файла?

+0

Что не так с именем выходного файла? –

+0

Проверьте файлы Android.mk в своем проекте. – Moved

+0

Если вы используете новые функции поддержки Android Studio C++, покажите нам 'build.gradle' или если вы используете' CMake', покажите файл 'CMakeLists.txt'. Кроме того, убедитесь, что после того, как вы изменили имя, вы меняете его в своем коде при загрузке библиотеки: 'System.loadLibrary (« myname.so »)' –

ответ

2

Я рад, что вы смогли понять это. В любом случае, я отправлю ответ здесь для справки.

< < 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' 
    } 
} 

Затем, сделайте полный чистый, обновите проект C++, используя опцию, представленную в меню «Построение».

И как @bitwise отправил, если вам нужно, удалить содержимое build и .externalNativeBuild папку и перестроить проект.

+0

У меня такая же проблема, мой CMakeLists.txt находится в папке cpp, но не было проблем, прежде чем я переименовал имя файла cpp. – david

Смежные вопросы