Include .so library in apk in android studio [duplicate]
To pytanie ma już odpowiedź tutaj:
Android studio, gradle i NDK 23 odpowiedzi Próbuję opracować prostą aplikację na Androida, w której próbuję użyć sqlcipher, który korzysta wewnętrznie z bibliotek .so. Przeczytałem dokumentację najak korzystać z sqlcipher z aplikacją na Androida. Postępowałem zgodnie z instrukcjami i kompiluje się bez żadnego błędu. Ale w czasie wykonywania wyrzucaUnsatisfiedLinkError
.
Google się po to, znalazłem to,gradle nie obsługuje jeszcze bibliotek .so, ale znalazłem hacktuta którego próbuję użyć. Ale generuje błąd czasu kompilacji w wierszu nr 40 na liście, którą jest
tasks.withType(com.android.build.gradle.PackageApplicationTask) { pkgTask ->
pkgTask.jniDir new File(buildDir, 'native-libs')
}
powiedzeni
Nie można znaleźć właściwości „com” w projekcie „MyProject”
Tutaj publikuję kod z mojego pliku build.gradle.
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
compile files('libs/commons-codec.jar')
compile files('libs/guava-r09.jar')
compile files('libs/sqlcipher.jar')
}
targetCompatibility = 1.6
sourceCompatibility = 1.6
android {
target = 'android-14'
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 9
targetSdkVersion 16
}
}
task copyNativeLibs(type: Copy) {
from(new File(project(':MyProject').buildDir, 'native-libs')) { include '**/*.so' }
into new File(buildDir, 'native-libs')
}
tasks.withType(Compile) { compileTask -> compileTask.dependsOn copyNativeLibs }
clean.dependsOn 'cleanCopyNativeLibs'
tasks.withType(com.android.build.gradle.PackageApplicationTask) { pkgTask ->
pkgTask.jniDir new File(buildDir, 'native-libs')
}
Czy ktoś może mi pomóc w tym, co zrobiłem źle lub co powinienem zrobić, aby dołączyć te biblioteki .so do mojej aplikacji?
Ponieważ jestem nowy w rozwoju i stopniowaniu Androida, przeproś mnie, jeśli coś źle zrozumiałem.