Проблемы построения библиотеки Android с нативным кодом


Я пытаюсь построить проект библиотеки Android с нативным кодом. В разделе "известные ограничения" под http://tools.android.com/tech-docs/new-build-system/gradle-experimental поддерживаются проекты гибридных библиотек. Но я, кажется, не вижу собственных файлов so, генерируемых в папке libs файла библиотеки aar.

Вот как выглядит моя настройка проекта

  1. последовали шаги в http://tools.android.com/tech-docs/new-build-system/gradle-experimental Для поддержки ndk
  2. добавлена библиотека модулей, которая статически загружает собственный файл so и предоставляет возможности с помощью некоторых методов
  3. добавлен еще один модуль, использующий собственный модуль. Установите зависимости модулей для включения проекта библиотеки.

Когда я запускаю это приложение, я получаю UnsatisfiedLinkError, который я ожидал, поскольку я не вижу собственных файлов so, генерируемых в aar файл.

Вот как строится моя библиотека.файл 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"
     }
}

Вот как строится мой модуль приложения.gradle выглядит как

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

1 ответ:

Это общая проблема в Gradle experimental 0.2.0 и 0.2.1. Была та же проблема, обновлена до 0.3.0-alpha4, и это сработало (просто замените 0.2.0 на 0.3.0-alpha4 в сборке вашего проекта.Gradle в). Для обновления вам понадобится Gradle 2.6 (щелкните правой кнопкой мыши на модуле / откройте Настройки модуля / выберите подменюProject / setGradle version в поле 2.6). Обратите внимание, что я использую Android Studio 1.4 RC3.