首页 > 解决方案 > 我在哪里可以下载适用于 Android 的 libc++_shared.so?

问题描述

我的 Android 缺少 C++ 库,所以当我下载 64 位时,我需要使用 adb 将它推送到我的 Android。我也不知道它通常坐在哪里将它推到确切的位置。

标签: androidandroid-studioandroid-layoutandroid-fragments

解决方案


  1. 如果应用程序需要 lib .so 来使用本机 cpp 代码编译应用程序,NDK 将拥有 ANDROID_STL 依赖库来配置以构建应用程序。build.gradle 文件配置属性可用于解决 NDK 构建错误。也可以添加相同的 c++11 stl CMakeLists.txt

    externalNativeBuild {

           cmake {
             cppFlags "-std=c++11 -fexceptions -frtti"
             arguments "-DANDROID_STL=c++_shared"
         }
     }
    

APK 可以在构建问题解决后生成,同样可以在发生 Linking 错误时分析对本机库的交叉检查。

java.lang.UnsatisfiedLinkError: dlopen 失败

  1. 无需推送这些 C++ 库,因为它是 Android 系统标准原生库的一部分。如果需要推送,那么它应该system/lib具有特殊权限。

Android 系统会根据应用在运行时加载时定义的拱层来查找 .so 库。例如。/data/app-lib/packagename/、/system/lib、/vendor/lib。

如果需要推送这些库,则设备应植根。应按以下步骤推送

一个。adb root 湾。adb remount C。adb push <source_path> <destination_path>


推荐阅读