could not load library “libstdc++.so.6” при System.loadLibrary в Android

358
26 ноября 2016, 19:14

Когда я пытаюсь сделать System.loadLibrary("MyLib"); в андроид в статик блоке происходит следующее:

Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: soinfo_link_image(linker.cpp:1640): could not load library "libstdc++.so.6" needed by "libMyLib.so"; caused by load_library(linker.cpp:750): library "libstdc++.so.6" not found

Я не в курсе, зачем ему stdc++, и даже что это. Такого в зависимостях моей библиотеки вроде как нет:

#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <termios.h>
#include <time.h>
#include <errno.h>//-D_TS_ERRNO use for Solaris C++ compiler
#include <sys/select.h>//since 2.5.0
#ifdef __linux__
    #include <linux/serial.h>
#endif
#ifdef __SunOS
    #include <sys/filio.h>//Needed for FIONREAD in Solaris
    #include <string.h>//Needed for select() function
#endif
#ifdef __APPLE__
    #include <serial/ioss.h>//Needed for IOSSIOSPEED in Mac OS X (Non standard baudrate)
#endif
#include <jni.h>

Я погуглил. В линуске такое решается просто строкой:

sudo apt-get install lib32stdc++6

Но в андроиде я не могу так сделать. При этом в линуксе и винде мои библиотеки подключаются и работают без проблем. Может быть андроид хочет, чтобы я скомпилировал библиотеки для андроид отдельно, с помощью NDK? Тогда как людям удаётся использовать даже чужие библиотеки без исходников?

Answer 1

Английский динамик с помощью Google Translate. Извините, если это неясно!

Вы должны использовать NDK для создания Android библиотеки. Библиотеки, установленные на типичной системе Linux очень сильно отличаются от тех, на Android.

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

READ ALSO
Таймер обратного отсчета на Java [закрыто]

Таймер обратного отсчета на Java [закрыто]

Надо сделать таймер вида HH:MM:SS на Java обратного отсчета по такому принципу действия:

480
Условие выбора категорий

Условие выбора категорий

У меня есть фрагмент со списком категорий:

306
Работа с Picasso android в AsyncTask

Работа с Picasso android в AsyncTask

Загружаю png изображение через Picasso по url, вот только перед relativeLayoutsetBackground выдает исключение что я использую main поток, вызов SetBackground идет в методе...

318