BoringSSLを使用してファイルcheckSumを生成するために、Androidでjni関数を作成しています。
そこで、Android studio で Prebuilt Library を使用するために、共有ライブラリに Boringssl をビルドしました。
*.so ファイルをプロジェクトの src/main/jniLibs/lib にコピーし、BoringSSL インクルード フォルダーを src/main/jni にコピーしました。
このプロジェクトを参考にして、自分のプロジェクトに応募しました。
https://github.com/googlesamples/android-ndk/tree/master/hello-libs
このような私のbuild.gradleファイル。私はgradle-experimental:0.7.0(および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'
}
これが私のプロジェクト構造です。
gradle sync エラーが発生していないので、サンプルプロジェクトを適切に適用したと思います。
そして、MD5関数を使用すると、Android Studioのオートコンプリート関数名は次のようになります。
しかし、実行をクリックすると、このようなエラーが発生しました...
Google、github、そしてもちろんstackoverflowの以前の回答で多くのプロジェクトを検索しましたが、それでも問題は解決しません。
gradle バージョンを変更してみましたが、他の gradle バージョンでは gradle-experimental:0.7.0 以外の自動生成された jni 関数でエラーが発生しました。
誰かが私を正しい方向や解決策に向けることができますか?
私の質問を読んでくれてありがとう。