Size: a a a

Android NDK (C++) — русскоговорящее сообщество

2018 November 13

JL

Justin L0we in Android NDK (C++) — русскоговорящее сообщество
Denis Dodonov
2016 год, ненадо так
Это да) просто вчера с билдом своей библиотеки парился, в итоге вроде получилось, решил для опенсв попробовать. Ладно, спасибо, просто готовые закину
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
Justin L0we
Это да) просто вчера с билдом своей библиотеки парился, в итоге вроде получилось, решил для опенсв попробовать. Ладно, спасибо, просто готовые закину
Вообще ты можешь, но лучше делать это в отдельном проекте и юзать симейк. Поидее тебе это нужно только если хочешь менять что-то внутри опенсв
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
Зачем тебе боль в виде получасовой сборки?
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
Да и в этом видео опенсв не собирается из исходников...
источник

JL

Justin L0we in Android NDK (C++) — русскоговорящее сообщество
Denis Dodonov
Да и в этом видео опенсв не собирается из исходников...
Ну да, я не с нуля собирал, там срр файл в котором есть опенсв, вот для этого файла как я понимаю и собирается библиотека
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
Justin L0we
Ну да, я не с нуля собирал, там срр файл в котором есть опенсв, вот для этого файла как я понимаю и собирается библиотека
Да, похоже собирается, я вот не знаю есть ли в OpenCV-2.4.9-android-sdk сбилженные со-шки
источник

JL

Justin L0we in Android NDK (C++) — русскоговорящее сообщество
Короче этот шаг все равно нужен, потому что в нем собирается твоя нативная библиотека, без нее не работает, ну и как причина она у меня не собирается
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
Justin L0we
Короче этот шаг все равно нужен, потому что в нем собирается твоя нативная библиотека, без нее не работает, ну и как причина она у меня не собирается
Какой шаг? Твоей библиотеки нужны хедеры опенсв и собранные библиотеки для линковки.
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
add_library( lib_opencv SHARED IMPORTED )
set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libopencv_java3.so)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp/include)

add_library( native-lib
            SHARED
            src/main/cpp/native-lib.cpp )
     
target_link_libraries(  native-lib
                        lib_opencv)
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
В самом простом виде это делается так
источник

JL

Justin L0we in Android NDK (C++) — русскоговорящее сообщество
Denis Dodonov
Какой шаг? Твоей библиотеки нужны хедеры опенсв и собранные библиотеки для линковки.
Имею в виду шаг, где он создаёт Android.mk и Application.mk, вот после этого шага у меня не создаётся нативная библиотека с моей функцией. Я посмотрю на домашнем компе, там у меня работало
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
Justin L0we
Имею в виду шаг, где он создаёт Android.mk и Application.mk, вот после этого шага у меня не создаётся нативная библиотека с моей функцией. Я посмотрю на домашнем компе, там у меня работало
Не надо юзать мейкфайлы когда есть смейк, гораздо удобнее всё с ним
источник

JL

Justin L0we in Android NDK (C++) — русскоговорящее сообщество
Denis Dodonov
Не надо юзать мейкфайлы когда есть смейк, гораздо удобнее всё с ним
Ок, спасибо
источник

JL

Justin L0we in Android NDK (C++) — русскоговорящее сообщество
Короче что-то нихуа не заработало. Cmakelists взял https://stackoverflow.com/questions/38958876/can-opencv-for-android-leverage-the-standard-c-support-to-get-native-build-sup отсюда, с дополнениями. Файлы в main/cpp. Класс в main/java добавил.
А native-lib не создается.

Кстати,это законно что когда мы создаем на основе класса через javah заголовок, мы его перемещаем в /main/cpp?
источник

JL

Justin L0we in Android NDK (C++) — русскоговорящее сообщество
А так он ругается на "No implementation found for ..."
источник

JL

Justin L0we in Android NDK (C++) — русскоговорящее сообщество
Все, разобрался.
источник

JL

Justin L0we in Android NDK (C++) — русскоговорящее сообщество
Сложно сказать, для меня скорее нет
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
Justin L0we
Все, разобрался.
Если у тебя один .cpp для общения с либой ты можешь вообще не создавать заголовочники javah, стало офигенно удобно.
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
Просто в java создаёшь native метод, тыкаешь alt+enter и в cpp создаётся функция, hpp и не нужен
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
Вообще проект был который создан в 2014 и нынешний, небо и земля в плане удобства работы с ndk. Раньше отладка велась через cout =(
источник