Вопрос или проблема
Я использую Zoom SDK на Android. Когда я попытался запустить их проект в пакете SDK -> (проект mobilertc-android в Android Studio).
ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: main
Процесс: us.zoom.sdkexample, PID: 9094
java.lang.UnsatisfiedLinkError: dlopen не удалось: библиотека "libc++_shared.so" не найдена
в java.lang.Runtime.loadLibrary0(Runtime.java:1081)
в java.lang.Runtime.loadLibrary0(Runtime.java:1003)
в java.lang.System.loadLibrary(System.java:1765)
в com.zipow.cmmlib.AppContext.<clinit>(:1)
в us.zoom.internal.impl.i0.a(:63)
в us.zoom.sdk.ZoomSDK.initialize(:1)
Та же проблема возникла несколько раз, когда я попробовал другие методы.
**Устранение неполадок: конфликты с libc++_shared.so Чтобы устранить конфликт с libc++_shared.so, попробуйте эти варианты в этом порядке. Проверьте после каждого изменения, решает ли это проблему.
Проверьте версию NDK проекта. Текущая поддерживаемая версия NDK нашего SDK – r25c. Если вы не уверены, какую версию вы используете, укажите версию NDK в файле build.gradle.
Проверьте, есть ли в вашем проекте другая библиотека libc++_shared.so, которая вызывает конфликт.
Если у вас есть собственная C++ библиотека в проекте, укажите ndkVersion 23 в build.gradle. Если вы используете сторонний модуль, который включает libc++_shared.so, удалите сторонний модуль из вашего проекта или удалите libc++_shared.so из модуля.**
Я пробовал решения, рекомендованные на https://developers.zoom.us/docs/video-sdk/android/integrate/, но это не помогает. Я изменил версию NDK, добавил пакет и не думаю, что есть дубликат “libc++_shared.so”. Или, возможно, я что-то упускаю.
Пожалуйста, дайте мне знать, если вы сталкивались с аналогичной ситуацией и как вы это решили. Буду признателен.
Ответ или решение
При интеграции Zoom SDK в ваше Android приложение возникла ошибка: "libc++_shared.so not found". Эта проблема может быть вызвана несколькими факторами, и в данной статье мы подробно рассмотрим шаги по её устранению.
1. Проверка версии NDK
Первым делом убедитесь, что вы используете поддерживаемую версию NDK. Согласно документации Zoom, актуальная версия — r25c. Чтобы определить используемую версию, проверьте ваш файл build.gradle
:
android {
...
ndkVersion "25.0.0" // Убедитесь, что указана версия r25c
}
Если версия не совпадает, измените её и синхронизируйте проект.
2. Поиск конфликтующих библиотек
Ошибка, связанная с отсутствием libc++_shared.so, может возникать из-за наличия нескольких версий этой библиотеки в вашем проекте. Чтобы избежать конфликтов:
- Откройте раздел
app/src/main/jniLibs
и проверьте наличие этой библиотеки. Убедитесь, что там нет дубликатов. - Если в вашем проекте есть собственные C++ библиотеки, убедитесь, что они используют совместимую версию libc++_shared.so.
3. Удаление сторонних библиотек
Если вы подключали сторонние модули, которые включают свою версию libc++_shared.so, вам нужно будет их откорректировать:
- Удалите сторонний модуль или исключите libc++_shared.so из его зависимостей, если это возможно.
4. Добавление библиотек в проект
Если указанные изменения не помогли, вы можете попробовать добавить саму библиотеку libc++_shared.so в проект:
- Скачайте библиотеку libc++_shared.so, если она отсутствует в ваших модулях.
- Поместите её в директорию
app/src/main/jniLibs/{arch}
, где{arch}
— архитектура вашего устройства (например,arm64-v8a
,armeabi-v7a
и т.д.).
5. Проверка конфигурации Gradle
Убедитесь, что в вашем build.gradle
указаны все необходимые зависимости и конфигурации, включая поддержку NDK:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.zipow:videobroker:YOUR VERSION'
}
android {
...
externalNativeBuild {
cmake {
cppFlags "-std=c++11"
}
}
}
Заключение
Если после выполнения всех перечисленных шагов ошибка остаётся, рекомендуется обратиться в поддержку Zoom с предоставлением всех необходимых логов и информации о вашем окружении (версия Android Studio, используемые библиотеки и пр.).
Эти действия должны помочь вам устранить проблему с отсутствием libc++_shared.so в вашем проекте и, как следствие, успешно интегрировать Zoom SDK в ваше Android приложение. Удачи в разработке!