LINUX.ORG.RU

android studio пишет ошибки при компиляции

 , ,


0

1

Хочу код собрать с jni. Android studio выводит ошибки.

External Native Build Issues
Build command failed.
Error while executing process /home/user/Android/Sdk/cmake/3.6.3155560/bin/cmake with arguments {-H/home/user/AndroidStudioProjects/MyApplications/app -B/home/user/AndroidStudioProjects/MyApplications/app/.externalNativeBuild/cmake/debug/armeabi -GAndroid Gradle - Ninja -DANDROID_ABI=armeabi -DANDROID_NDK=/home/user/Android/Sdk/ndk-bundle -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/user/AndroidStudioProjects/MyApplications/app/build/intermediates/cmake/debug/obj/armeabi -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=/home/user/Android/Sdk/cmake/3.6.3155560/bin/ninja -DCMAKE_TOOLCHAIN_FILE=/home/user/Android/Sdk/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=android-22 -DCMAKE_CXX_FLAGS=}
/home/user/Android/Sdk/cmake/3.6.3155560/bin/cmake: /usr/lib/libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /home/user/Android/Sdk/cmake/3.6.3155560/bin/cmake)
/home/user/Android/Sdk/cmake/3.6.3155560/bin/cmake: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /home/user/Android/Sdk/cmake/3.6.3155560/bin/cmake)
/home/user/Android/Sdk/cmake/3.6.3155560/bin/cmake: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.1' not found (required by /home/user/Android/Sdk/cmake/3.6.3155560/bin/cmake)
Build command failed.
Error while executing process /home/user/Android/Sdk/cmake/3.6.3155560/bin/cmake with arguments {-H/home/user/AndroidStudioProjects/MyApplications/app -B/home/user/AndroidStudioProjects/MyApplications/app/.externalNativeBuild/cmake/release/armeabi -GAndroid Gradle - Ninja -DANDROID_ABI=armeabi -DANDROID_NDK=/home/user/Android/Sdk/ndk-bundle -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/user/AndroidStudioProjects/MyApplications/app/build/intermediates/cmake/release/obj/armeabi -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=/home/user/Android/Sdk/cmake/3.6.3155560/bin/ninja -DCMAKE_TOOLCHAIN_FILE=/home/user/Android/Sdk/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=android-22 -DCMAKE_CXX_FLAGS=}
/home/user/Android/Sdk/cmake/3.6.3155560/bin/cmake: /usr/lib/libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /home/user/Android/Sdk/cmake/3.6.3155560/bin/cmake)
/home/user/Android/Sdk/cmake/3.6.3155560/bin/cmake: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /home/user/Android/Sdk/cmake/3.6.3155560/bin/cmake)
/home/user/Android/Sdk/cmake/3.6.3155560/bin/cmake: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.1' not found (required by /home/user/Android/Sdk/cmake/3.6.3155560/bin/cmake)
Хотя модуль cmake есть. libssl тоже есть, но в линуксе. Может в android studio чего?

Ну вот и оно. нужных версий библиотек он не находит по данным путям

Silerus ★★★★
()

Может в android studio чего

ITS DNA PROBLEM

libssl

А у тебя какая версия? Там зеленым по серому написано(вроде), что нужно 1.0.0.

narkoman228
()
Ответ на: комментарий от Silerus

Но это не так страшно, как в случае с ядром! :)

Harald ★★★★★
()

а может там нужны 32 битные.

u0atgKIRznY5
() автор топика
Ответ на: комментарий от u0atgKIRznY5

у меня ndk обычно работает с Android.mk
Может это какой-то неправильный ndk? или неправильный проект?

mittorn ★★★★★
()
Ответ на: комментарий от u0atgKIRznY5

Под безобразием он имел ввиду Android Studio.

Наверное ещё и CMake, но это всё потому что Android Studio тащит за собой свой CMake, с которым твой дистрибутив оказался несовместим.

a1batross ★★★★★
()

Какой дистрибутив? Android Studio использует забайндленный CMake, который часто несовместим с дистрибутивными либами. В Arch Linux я это вылечил, откатив версию OpenSSL ровно на один релиз назад.

Но правильным решением будет уйти с CMake на ndk-build, так как поддержка CMake в Android Studio ущербна. Насколько я знаю, нет даже возможности выбора системного cmake, вместо забайндленного.

EXL ★★★★★
()

Хотя модуль cmake есть.

Так а какое слово в предложении version `OPENSSL_1.0.0' not found вам непонятно?

libssl тоже есть, но в линуксе.

И что по вашему это значит?

Может в android studio чего?

Нет, в вашем нежелании подумать.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

И что по вашему это значит?

Отсюда и сложность в понимании, если такие библиотеки есть. А он пишет что нет.

u0atgKIRznY5
() автор топика
Ответ на: комментарий от u0atgKIRznY5

если такие библиотеки есть. А он пишет что нет.

где они есть? чем они собраны? для чего? для чего ты их собираешь?

anonymous
()
Ответ на: комментарий от u0atgKIRznY5

Arch linux

Накати этот пакет:

wget https://archive.archlinux.org/packages/o/openssl-1.0/openssl-1.0-1.0.2.k-2-x86_64.pkg.tar.xz
pacman -U openssl-1.0-1.0.2.k-2-x86_64.pkg.tar.xz

А как перейти с cmake на ndk-build?

externalNativeBuild {
        ndkBuild {
            path 'src/main/cpp/Android.mk'
        }

        // cmake {
        //    path 'src/main/cpp/CMakeLists.txt'
        // }
    }

И написать Android.mk

EXL ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.