2014-09-04 24 views
5

Bunun için birçok benzer soru olduğunu biliyorum, ancak bunların çoğu JavaCV gibi kütüphanelerin geliştirilmesi nedeniyle güncelliğini yitiriyor gibi görünüyor.Android Studio'da JavaCV yapılandırması

Film oluşturmak için Video Creation with Images and Audio in Android kodunu kullandım, ancak lib import'larıyla ilgili bir sorunum var.

compile group: 'org.bytedeco', name: 'javacv', version: '0.9' 

şimdi ben başka bir şey yapmak zorunda olmadığını, bilmiyorum:

Ben JavaCV sayfa ben gradle içinde bağımlılık koymak, söylediği gibi mi?

Bunları ithalatı kullandık:

import org.bytedeco.javacpp.avcodec; 
import org.bytedeco.javacpp.opencv_core.IplImage; 
import org.bytedeco.javacv.FFmpegFrameRecorder; 

import static org.bytedeco.javacpp.opencv_highgui.cvLoadImage; 

ve bu hatayı alıyorum:

Caused by: java.lang.NoClassDefFoundError: java.lang.ClassNotFoundException: org.bytedeco.javacpp.avutil 
     at org.bytedeco.javacpp.Loader.load(Loader.java:387) 
     at org.bytedeco.javacpp.Loader.load(Loader.java:353) 
     at org.bytedeco.javacpp.avformat.<clinit>(avformat.java:13) 
     at org.bytedeco.javacv.FFmpegFrameRecorder.<clinit>(FFmpegFrameRecorder.java:106) 
     at voidstudio.app.activity.CreateMovieTask.doInBackground(CreateMovieTask.java:46) 
     at voidstudio.app.activity.CreateMovieTask.doInBackground(CreateMovieTask.java:21) 

ve

Caused by: java.lang.ClassNotFoundException: org.bytedeco.javacpp.avutil 
     at java.lang.Class.classForName(Native Method) 
     at java.lang.Class.forName(Class.java:217) 

ve

Caused by: java.lang.UnsatisfiedLinkError: Couldn't load jniavutil from loader dalvik.system.PathClassLoader[dexPath=/data/app/voidstudio.app-1.apk,libraryPath=/data/app-lib/voidstudio.app-1]: findLibrary returned null 
     at java.lang.Runtime.loadLibrary(Runtime.java:365) 
     at java.lang.System.loadLibrary(System.java:521) 
     at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535) 
     at org.bytedeco.javacpp.Loader.load(Loader.java:410) 

sth'yi yapılandırmada mı özledim? Benzer sorular gördüm ama bunun için uygun bir cevap yoktu.

+0

Aynı sorunu yaşıyorum, bir çözüm buldunuz mu? – Yourange

+0

Nope, belki bu sorun JavaCV –

cevap

2

Kontrol jniLibs klasörün

yerleştirilmesi sadece benim jniLibs yerleştirilmesini değişti (ana klasör dışında önce) ve bu image kontrol edin, benim için çalıştı! umarım bu,

7

Güncellemesine yardımcı olur! Ayrıca jniLibs'de bir armeabi-v7a klasörünüz varsa veya bir armeabi klasöründen başka bir şey kullanıyorsanız, .so dosyalarının eklenmemesiyle ilgili sorunlarınız olacağını öğrendim.

Ffmpeg içe aktarılmıyor gibi görünüyor. Bende aynı problem vardı. İşte yaptım. Bu size yardımcı olursa haberim olsun!

compile group: 'org.bytedeco', name: 'javacv', version: '0.9' 
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '2.4.9-0.9', classifier: 'android-arm' 
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '2.3-0.9', classifier: 'android-arm' 
+0

'un yeni sürümü ile ilgilidir. Gradle bağımlılıkları ile çok aşina değilim ama nereden ffmpeg ve opencv için sürümler alırsınız (version: '2.4.9-0.9', version: '2.3- 0.9 ') – Vadym

+0

Sadece MavenCentral'a baktım. İşte FFMPEG bir link. Aralık ayında piyasaya sürülen yeni bir sürüm var gibi görünüyor. http://mvnrepository.com/artifact/org.bytedeco.javacpp-presets/ffmpeg – tylerjroach

+0

javacv sürüm 0.11 kullanıyorum ve 'opencv' ve 'ffmpeg' yerine maven merkezindeki en son sürümle değiştirdim. Ama hala çalışmıyor. Diğer .so dosyaları içeren src/main altında bir klasör armeabi-v7a var. Armeabi-v7a klasörü hakkında bir şey yapmak zorunda mıyım? –

İlgili konular