Ich mache eine Jni-Funktion in Android, um Datei CheckSum mit BoringSSL zu generieren.Verwenden von vorgefertigten Bibliothek in Android Studio
Also ich baute loringssl zu geteilten Bibliothek für die Verwendung Prebuilt Library in Android Studio.
Ich kopierte die * .so-Datei in meinem Projekt src/main/jniLibs/lib und BoringSSL umfassen Ordner src/main/jni
ich dieses Projekt verwiesen und auf meine Projekte anwenden.
https://github.com/googlesamples/android-ndk/tree/master/hello-libs
Meine build.gradle Datei wie folgt. Ich verwende gradle-experimental: 0.7.0 (und Window10, Android Studio 2.1.2)
apply plugin: 'com.android.model.application'
model {
repositories {
libs(PrebuiltLibraries) {
boringssl {
headers.srcDir "src/main/jni/include/openssl"
binaries.withType(SharedLibraryBinary) {
sharedLibraryFile = file("src/main/jniLibs/lib/libcrypto.so")
sharedLibraryFile = file("src/main/jniLibs/lib/libssl.so")
}
}
}
}
android {
compileSdkVersion = 24
buildToolsVersion = '24.0.1'
defaultConfig {
applicationId = 'yein.a'
minSdkVersion.apiLevel = 19
targetSdkVersion.apiLevel = 24
versionCode = 1
versionName = '1.0'
}
ndk {
moduleName = 'hello-libs'
ldLibs.addAll(['android', 'log'])
}
sources {
main {
jni {
dependencies {
library 'boringssl' linkage 'shared'
}
}
jniLibs{
source{
srcDir "src/main/jniLibs/lib"
}
}
}
}
productFlavors{
create("arm"){
ndk.abiFilters.add("armeabi-v7a")
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles.add(file('proguard-android.txt'))
}
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:24.1.1'
}
Das ist meine Projektstruktur.
Ich glaube, ich richtig die Beispielprojekte anwenden, weil es nicht gradle Synchronisierungsfehler aufgetreten ist.
Und wenn ich MD5-Funktion Android Studio verwenden, vervollständigen Funktionsname wie folgt.
Aber ich auf Ausführen es so aufgetretenen Fehler ...
Ich suchte viel Projekt in Google, Github und natürlich bisherige Antworten Stackoverflow, aber ich immer noch nicht mein Problem lösen.
Ich versuchte Änderung Gradle Version, aber andere Gradle-Version aufgetreten Fehler in auto generierte jni Funktion außer Gradle-experimental: 0.7.0.
Konnte mir jemand in die richtige Richtung oder sogar eine Lösung zeigen?
Vielen Dank für meine Frage zu lesen.
Hallo @ 심 예인 Ich habe ein Problem wie Sie auch. Löst du es auf? Können Sie mir Ihr einfaches Beispielprojekt mitteilen? Vielen Dank. –
Hallo @ PhanSinh Ich habe nur meinen Quellcode auf Github [Link] (https://github.com/yein28/Checksum) Dieses Projekt wird MD5-Wert meiner APK-Datei erhalten. Ich habe diesen Code vor einigen Monaten geschrieben. vor ein paar Monaten, es funktioniert gut, aber ich bin mir nicht sicher, es funktioniert immer noch gut. Ich hoffe, dieser Code ist hilfreich für Sie :) –
Vielen Dank @ 심 예인. Ich verwende OpenSSL für AES, um meine Daten zu verschlüsseln. Aber jetzt habe ich festgestellt, dass Google BoringSSL anstelle von OpenSSl von Android 6 verwendet. Wissen Sie? Hast du mit BoringSSL gearbeitet? –