使用本机代码构建Android库时出现问题

时间:2015-09-26 04:43:40

标签: android android-studio android-ndk android-gradle android-library

我正在尝试使用本机代码构建一个Android库项目。根据{{​​3}}下的“已知限制”部分,支持混合库项目。但我似乎没有看到在库aar文件的libs文件夹下生成本机文件。

以下是我的项目设置如何

  1. http://tools.android.com/tech-docs/new-build-system/gradle-experimental中有关ndk支持的步骤
  2. 添加了一个库模块,静态加载本机so文件并通过某些方法公开功能
  3. 添加了另一个使用本机模块的模块。设置模块依赖项以包含库项目。
  4. 当我运行这个应用程序时,我得到一个UnsatisfiedLinkError,我预计,因为我看到没有原生的文件在aar文件中生成。

    这就是我的库build.gradle文件的样子

    apply plugin: 'com.android.model.library'
    
    model {
         android {
             compileSdkVersion = 23
             buildToolsVersion = "23.0.1"
         }
         android.ndk {
             moduleName = "native"
             cppFlags = ['-std=c++11']
             stl = "gnustl_shared"
         }
    }
    

    这就是我的app模块的build.gradle的样子

    apply plugin: 'com.android.model.application'
    model {
        android {
            compileSdkVersion = 23
            buildToolsVersion = "23.0.1"
        }
    }
    dependencies {
        compile project(':mylibrary')
    }
    

1 个答案:

答案 0 :(得分:1)

这是gradle实验0.2.0和0.2.1中的常见问题。遇到同样的问题,升级到0.3.0-alpha4并且它有效(只需在项目的build.gradle中将0.2.0替换为0.3.0-alpha4)。要升级,您需要Gradle 2.6(右键单击模块/打开模块设置/选择项目子菜单/将 Gradle版本字段设置为2.6)。请注意,我使用的是Android Studio 1.4 RC3。