J'essaie donc d'utiliser JavaCV avec Android Studio. J'essaie d'utiliser le wrapper pour la classe FaceRecognizer. J'ai essayé de faire fonctionner ce code pendant des heures mais pas de chance jusqu'ici. Je continue à obtenir une erreur de construction:Problème d'utilisation de JavaCV Android Studio
Error:A problem occurred configuring project ':app'.
> Could not find javacpp-presets-Mac OS X-x86_64.jar
(org.bytedeco:javacpp-presets:1.2).
Searched in the following locations:
https://jcenter.bintray.com/org/bytedeco/javacpppresets/1.2/javacpp-presets-1.2-Mac OS X-x86_64.jar'
Je décompressé les fichiers .so pour OpenCV et divisé en deux fichiers: armeabi et x86, donc ce bien.
Voici mon fichier build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
sourceSets.main.jni.srcDirs = []
//task ndkBuild(type: Exec, description: 'Compile JNI source via NDK') {
// ndkDir = project.plugins.findPlugin('com.android.application').sdkHandler.getNdkFolder()
// //on Windows, you need to add ".cmd" after "ndk-build" below
// commandLine "$ndkDir/ndk-build",
// 'NDK_PROJECT_PATH=build/intermediates/ndk',
// 'NDK_LIBS_OUT=src/main/jniLibs',
// 'APP_BUILD_SCRIPT=src/main/jniLibs/Android.mk',
// 'NDK_APPLICATION_MK=src/main/jniLibs/Application.mk'
//}
//task ndkLibsToJar(type: Zip, dependsOn: 'ndkBuild', description: 'Create a JAR of the native libs') {
// destinationDir new File(buildDir, 'libs')
// baseName 'ndk-libs'
// extension 'jar'
// from(new File(buildDir, 'libs')) { include '**/*.so' }
// into 'lib/'
//}
//tasks.withType(JavaCompile) {
// compileTask -> compileTask.dependsOn ndkBuild
//}
defaultConfig {
applicationId "com.example.manavdutta1.affdexdemo"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
//exclude 'META-INF/maven/org.bytedeco.javacpp-presets/ffmpeg/pom.properties'
//exclude 'META-INF/maven/org.bytedeco.javacpp-presets/ffmpeg/pom.xml'
//might need these if you use openCV
exclude 'META-INF/maven/org.bytedeco.javacpp-presets/opencv/pom.properties'
exclude 'META-INF/maven/org.bytedeco.javacpp-presets/opencv/pom.xml'
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile fileTree(dir: new File(buildDir, 'libs'), include: '*.jar')
testCompile 'junit:junit:4.12'
compile project(path: ':openCVLibrary2411')
compile files('src/main/libs/faceapi.jar')
compile files('src/main/libs/faceppsdk.jar')
//compile files('src/main/libs/artoolkitplus.jar')
//compile files('src/main/libs/ffmpeg.jar')
//compile files('src/main/libs/flandmark.jar')
//compile files('src/main/libs/flycapture.jar')
//compile files('src/main/libs/javacpp.jar')
//compile files('src/main/libs/javacv.jar')
//compile files('src/main/libs/arm/opencv-android-arm.jar')
//compile files('src/main/libs/x86/opencv-android-x86.jar')
//compile files('src/main/libs/libdc1394.jar')
//compile files('src/main/libs/libfreenect.jar')
//compile files('src/main/libs/opencv.jar')
//compile files('src/main/libs/videoinput.jar')
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.affectiva.android:affdexsdk:3.0.1'
compile 'com.microsoft.projectoxford:face:1.0.0'
compile 'com.microsoft.projectoxford:emotion:1.0.0'
compile 'com.android.support:design:23.3.0'
compile 'org.bytedeco:javacv:1.2'
compile 'org.bytedeco.javacpp-presets:opencv:3.0.0-1.1:android-x86'
compile 'org.bytedeco.javacpp-presets:opencv:3.0.0-1.1:android-arm'
//compile group: 'org.bytedeco', name: 'javacv', version: '1.2'
//compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '2.4.10-0.10', classifier: 'android-arm'
//compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '2.5.1-0.10', classifier: 'android-arm'
}
Je ne suis pas sûr de savoir comment procéder à partir d'ici. Quelles modifications dois-je apporter à build.gradle pour obtenir cette compilation? J'ai essayé d'utiliser javacv 1.1 mais j'ai une erreur lors de l'exécution, et les fichiers .so viennent tous de javacv 1.2.
merci pour cela. j'ai un autre problème. quand je télécharge du code dans l'ensemble Android, il montre cette erreur: 09-18 12: 49: 23.161 15771-15771/com.example.nasif.myapplication E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.example.nasif.myapplication, PID: 15771 java.lang.NoClassDefFoundError: java.lang.ClassNotFoundException: org.bytedeco.javacpp.opencv_core – user1850484