Jak mogę rozwiązać ten problem?
Właśnie skopiowałem pliki jar javacv w ramach mojego projektu Lib
folder i dostałem ten błąd!
Mogę to znaleźć wątek z google ale strony nie można otworzyć z powodu polityki ograniczeń google w moim kraju niestety.
Powodem umieszczenia tych słoików w mojej aplikacji na Androida jest to, że nie chcę ich używać openCV manager
. Chcę linkować statycznie openCV
biblioteka do mojego projektu. Próbuję uruchomić moją aplikację Samsung Galaxy S5
.
Tutaj jest LogCat
błędy, które dostałem:
[2014-07-16 10:13:57 - face-recognition] The library "javacv-android-arm.jar" contains native libraries that will not run on the device.
[2014-07-16 10:13:57 - face-recognition] The following libraries were found:
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniARToolKitPlus.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniavcodec.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniavdevice.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniavfilter.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniavformat.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniavutil.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjnicvkernels.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniopencv_calib3d.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniopencv_contrib.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniopencv_core.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniopencv_features2d.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniopencv_flann.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniopencv_highgui.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniopencv_imgproc.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniopencv_legacy.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniopencv_ml.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniopencv_nonfree.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniopencv_objdetect.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniopencv_photo.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniopencv_stitching.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniopencv_video.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniopencv_videostab.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjnipostproc.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniswresample.so
[2014-07-16 10:13:57 - face-recognition] - com/googlecode/javacv/cpp/android-arm/libjniswscale.so
EDYTUJ-1
Po wykonaniu instrukcji w tutaj, dzięki PRAKASH Mogłem rozwiązać te błędy, ale mam inne błędy, które są całkowicie powiązane NoClassDefFoundError
. Naprawdę się poddaję. Nie mogę rozwiązać problemu, więc każda pomoc byłaby naprawdę doceniana. Oto moje nowe błędy:
07-22 08:48:54.472: E/dalvikvm(11694): Could not find class "com.googlecode.javacv.cpp.opencv_core$MatVector", referenced from method org.opencv.javacv.facerecognition.PersonRecognizer.train
07-22 08:48:54.472: W/dalvikvm(11694): VFY: unable to resolve new-instance 108 (Lcom/googlecode/javacv/cpp/opencv_core$MatVector;) in Lorg/opencv/javacv/facerecognition/PersonRecognizer;
07-22 08:48:54.472: D/dalvikvm(11694): VFY: replacing opcode 0x22 at 0x001c
07-22 08:48:54.472: D/dalvikvm(11694): DexOpt: unable to opt direct call 0x00c9 at 0x28 in Lorg/opencv/javacv/facerecognition/PersonRecognizer;.train
07-22 08:48:54.472: D/AndroidRuntime(11694): Shutting down VM
07-22 08:48:54.472: W/dalvikvm(11694): threadid=1: thread exiting with uncaught exception (group=0x41737c08)
07-22 08:48:54.477: E/AndroidRuntime(11694): FATAL EXCEPTION: main
07-22 08:48:54.477: E/AndroidRuntime(11694): Process: org.opencv.javacv.facerecognition, PID: 11694
07-22 08:48:54.477: E/AndroidRuntime(11694): java.lang.NoClassDefFoundError: com.googlecode.javacv.cpp.opencv_contrib
Odpowiedzi:
5 dla odpowiedzi № 1Ściągnij Najnowsza wersja Javacv
i wyodrębnij go i umieść
ffmpeg.jar
,javacv.jar
,javacpp.jar
i opencv.jar
w libs
folder twojego projektu
a także wyodrębnić wszystkie * .so z wyodrębnionego
opencv-android-arm.jar,ffmpeg-android-arm.jar files.
i umieść wszystkie pliki * .so w środku libs / armeabi teczka
po więcej informacji Kliknij tutaj
może rozwiązać twój problem.
0 dla odpowiedzi nr 2
Jeśli jeszcze nie masz zainstalowanego AndroidaŚrodowisko programistyczne, możesz śledzić ten link, który zawiera wszystko, czego potrzebujesz, aby szybko zacząć. Obejrzyj film instruktażowy i postępuj zgodnie z instrukcjami poniżej, aby zainstalować Eclipse, Integrated Development Environment (IDE) dla rozwoju systemu Android i stworzyć nowy projekt.
Po zainstalowaniu wszystkiego i utworzeniu projektu użyj następującej procedury, aby zaimportować biblioteki JavaCV do projektu Android:
Pobierz biblioteki JavaCv: za. Z tego linku pobierz ”javacv-0.7-bin.zip „i rozpakuj pliki: - javacpp.jar - javacv.jar - javacv-android-arm.jar b. Z tego linku pobierz ”javacv-0.7-cppjars.zip„i rozpakuj pliki: - opencv-2.4.8-android-arm.jar - ffmpeg-2.1.1-android-arm.jar
Przejdź do Plik> Nowy> Folder, wybierz swój projekt jako folder nadrzędny, wpisz „libs / armeabi” jako nazwę folderu i kliknij Zakończ.
Skopiuj pliki javacpp.jar i javacv.jar do folderu „libs”.
Wypakuj wszystkie *.więc pliki z javacv-android-arm.jar, opencv-2.4.8-android-arm.jar i ffmpeg-2.1.1-android-arm.jar bezpośrednio do folderu „libs / armeabi”, bez tworzenia żadnego z podkatalogi znalezione w plikach JAR. (Najprostszym sposobem na wyodrębnienie plików .so z pliku .jar jest użycie oprogramowania 7-ZIP, które można pobrać tutaj).
Przejdź do Project> Properties> Java Build Path> Libraries i kliknij „Add JARs”.
Wybierz javacpp.jar i javacv.jar z folderu „libs”.
Na koniec zaimportuj funkcje JavaCV do swojego kodu
import static com.googlecode.javacv.cpp.opencv_core.*;
import static com.googlecode.javacv.cpp.opencv_imgproc.*;
import static com.googlecode.javacv.cpp.opencv_highgui.*;
i użyj kodu przykładowego, aby sprawdzić, czy wszystko działa poprawnie.