LINUX.ORG.RU

Как подцепить статическую нативную либу в Android Studio?

 ,


0

1

Hi

Есть проект для андроида, который должен использовать нативную либу. Проект — простой hello-jni, в который я хочу подключить свою testlib.a

либa уже собрана NDK и лежит там, где лежит

открываю build.gradle и добавляю в него:

def lib_path = "/home/data/android/libs/testlib"

module {
    repositories {
        libs(PrebuiltLibraries) {
            testlib {
                headers.srcDir "${lib_path}/include"
                binaries.withType(StaticLibraryBinary) {
                    staticLibraryFile = file("${lib_path}/lib/${targetPlatform.getName()}/testlib.a")
                }
            }
        }
    }
....
/// добавляю зависимость в jni
    android.sources {
        main {
            jni {
                dependencies {
                    library "testlib" linkage "static"
                }
            }
        }
    }
}

И вот тут получаю факап, потому что такой грейдл нихера не валиден, потому как

Error:Attempt to mutate closed view of model of type 'java.lang.Object' given to rule 'model.android.sources'

если заремарить строчку library "testlib" linkage "static" то все собирается..ну кроме того что я получаю unresolved symbol

гугление ничего не дало. Подобные ошибки находил, но на других моментах, и они были поправлены уже.

нашел доку по gradle http://tools.android.com/tech-docs/new-build-system/gradle-experimental и там вижу похожий пример, который у меня приводит к ошибке.

Куда еще смотреть?



Последнее исправление: seryoga (всего исправлений: 1)

Я с JNI никогда дел не имел, но, у тебя есть 2 build.gradle. Один для Project, второй для Module, и зависимости нужно добавлять во второй.

Jefail ★★★★
()

1. Поддержка NDK все еще в экспериментальной стадии.
2. Нужно использовать gradle 2.10
3. Нужно использовать новый плагин и новую модель.
Подробности есть на официальном сайте, там же и про миграцию написано:
http://tools.android.com/tech-docs/new-build-system/gradle-experimental

andreyu ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.