【问题标题】:How to add prebuilt *.so library in android studio 2.2如何在 android studio 2.2 中添加预构建的 *.so 库
【发布时间】:2016-10-20 18:42:42
【问题描述】:

我尝试将库添加到项目中,但 android studio 忽略了我的库。 我的 CmakeLists.txt add_library( mylib SHARED IMPORTED ) set_target_properties(ffmpeg PROPERTIES IMPORTED_LOCATION src/main /libs/${ANDROID_ABI}/libmylib.so )

构建我的 apk 后不包含 libmylib.so。如何使用 cmake 将预建库添加到项目中?

【问题讨论】:

标签: android android-ndk cmake


【解决方案1】:

目前需要通过应用打包。可能是这样的:

    sourceSets {
        main {
            // let gradle pack the shared library into apk
            jniLibs.srcDirs = ['point/to/your/shared-lib']
       }
    }

一个例子是:https://github.com/googlesamples/android-ndk/blob/master/hello-libs/app/build.gradle 如果您的共享库 [您的在项目路径内] 靠近您的项目,请将您的共享库的相对路径放在 CMakeLists.txt 中。

此错误底部的一些背景讨论可能会有所帮助: https://code.google.com/p/android/issues/detail?id=214664&can=8&q=vulkan&colspec=ID%20Status%20Priority%20Owner%20Summary%20Stars%20Reporter%20Opened

【讨论】:

  • 请问这是如何处理多个 ABI 的?它们是否需要单独指定,或者您可以简单地指向包含不同架构的构建的基本目录?
  • 对于多个 ABI,your-shared-lib-directory 应该有 abi 目录(由您放置),例如 x86、x86_64、arm64-v8a、armeabi-v7a; gradle 会自动将它们合并到您的最终 APK 中。
【解决方案2】:

1 - 在根目录中,创建新文件夹:/libs 并在其中放置您的外部库。

2 - 改变项目结构

yourprojectname/
      app/
           - build.gradle  // Local Gradle configuration (for app only)
           ...
      libs/
           libraryName/
                - build.gradle // Local Gradle configuration (for library only)
      - build.gradle // Global Gradle configuration (for whole project)
      - settings.gradle
      - gradle.properties
      ...

3 - 不要忘记将 gradle.setting 更改为

include ':app', ':libraryName'
project(':libraryName').projectDir = new File('libs/libraryName')

4-在 app/build.gradle 添加你的库

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile project(":PagerSlidingTabStrip")
}

在 android studio 中也有办法添加你的库,这样它就可以配置 gradle 和项目结构,它是:

1.文件/项目结构/

2.在模块部分找到你的项目并在依赖选项卡中添加你的库

【讨论】:

  • 实际上您的答案与问题的上下文无关。问题是关于添加具有 .so 文件的 ndk 库。您所说的是添加普通的 jar 或基于 aar 的库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-14
  • 2017-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多