Я пытаюсь построить libcryptopp.so
и включить его в свой код JNI, следуйте инструкциям в Android Crypto++, у меня возникли следующие проблемы.предупреждение: libcryptopp.so: отсутствует DT_SONAME будет использовать базовое имя в качестве замены
Отсутствующие проблемы символа в Crypto ++ 5.6.3
Первоначально я использовал Crypto ++ 5.6.3, я наткнулся на эту проблему:
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_Z9GlobalRNGv"
referenced by "/data/app/com.example.administrator.jnitest-2/lib/arm/libcryptopp.so"...
Я проверяю libcryptopp.so
:
$ readelf -Ws libcryptopp.so | grep _Z9GlobalRNGv
1406: 00000000 0 NOTYPE GLOBAL DEFAULT UND _Z9GlobalRNGv
15836: 00000000 0 NOTYPE GLOBAL DEFAULT UND _Z9GlobalRNGv
переключение на Crypto ++ 5.6.4 исправить эту проблему, но я до сих пор не знаю причину и столкнулся с другой проблемой:
Отсутствующие DT_SONAME
12-21 09:50:20.837 21677-21677/com.example.administrator.jnitest
W/linker: /data/app/com.example.administrator.jnitest- 1/lib/arm/libcryptopp.so: is missing DT_SONAME will use basename as a
replacement: "libcryptopp.so"
На самом деле это только предупреждение, приложение не будет врезаться.
Я использую последнюю версию android Mashwallow MOB31K. Кто-то также испытали подобные проблемы с помощью других библиотек
https://github.com/bytedeco/javacpp-presets/issues/188
на Android N-превью.
Почему я получаю предупреждение и как его исправить?
Это отличное намерение поделиться своими знаниями :) Хотя правильный способ сделать это - поставить вопрос, как если бы у вас действительно была проблема, и отвечая на свой вопрос. Если вы дадите свой пост, как сейчас, люди никогда не узнают, что вы действительно даете ответ. Благодарим за вклад! –
@Yao - 5.6.3 добавлено SONAME. Мы заметили, что у людей возникли проблемы с версиями libs на iOS и Android, поэтому мы удалили SONAME для мобильных целей на 5.6.4. В списке рассылки об Android и версиях libs есть несколько вопросов. Также см. [Commit d9c3c51aa8d3e710, Сделать не-SOLIBNAME версией по умолчанию для Android и Embedded] (https: // github.ком/weidai11/cryptopp/фиксации/d9c3c51aa8d3e710b296b640d768d7b2cbac6efc). – jww
@Rightleg, спасибо за инструкцию, я новый парень. Мне жаль, что позже я нахожу, что это на самом деле предупреждение, я сделал исправление. Но, надеюсь, это может быть полезно. – yao