※前提条件:本情報はWindows Server 2008+AndroidStudio1.5.1+OpenCV3.1を基づいて説明している ダウンロードしたOpenCVのface-detectionサンプルを対象に動作してみる src\main\jni\Android.mk †以下 include ../../sdk/native/jni/OpenCV.mk を include C:\Users\Administrator\StudioProjects\OpenCV-android-sdk\sdk\native\jni\OpenCV.mk に変更 以下 LOCAL_C_INCLUDES += $(LOCAL_PATH) LOCAL_LDLIBS += -llog -ldl を LOCAL_C_INCLUDES += $(LOCAL_PATH) LOCAL_C_INCLUDES += C:\Users\Administrator\StudioProjects\OpenCV-android-sdk\sdk\native\jni\include LOCAL_LDLIBS += -llog -ldl に追加する src\main\jni\Application.mk †以下 APP_ABI := armeabi-v7a を APP_ABI := armeabi armeabi-v7a に変更 gradle.properties †文末に以下を追加する android.useDeprecatedNdk=true build.gradle †compileSdkVersion を正しく設定する、例の中の23はAndroid APIのLevelである android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId "org.opencv.samples.facedetect" minSdkVersion 8 targetSdkVersion 23 先頭に以下を追加する import org.apache.tools.ant.taskdefs.condition.Os 以下を追加する sourceSets.main { jniLibs.srcDir 'src/main/libs' //参照する.soファイルのパス jni.srcDirs = [] //ndk-build自動コンパイルしないファイル } // ndk-build(.cmd)の呼び出し task ndkBuild(type: Exec) { if (Os.isFamily(Os.FAMILY_WINDOWS)) { commandLine 'ndk-build.cmd', 'NDK_PROJECT_PATH=build', 'APP_BUILD_SCRIPT=src/main/jni/Android.mk', 'NDK_APPLICATION_MK=src/main/jni/Application.mk' } else { commandLine 'ndk-build', '-C', file('src/main/jni').absolutePath } } tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn ndkBuild } 課題 †以上の手順で設定したら、JNIのコンパイル成果物「libdetection_based_tracker.so」を以下のフォルダに出力された。 C:\Users\Administrator\StudioProjects\FacaRecognizer\src\openCVSamplefacedetection\build\libs APKに発行できるようにするため、手動で「src/main/jniLibs」にコピーしないと発行されない。 中古車買取実績No.1ガリバー コメント: |