2014-02-04 3 views
1

Моего приложения состоит из ffmpeg, javacv-android-arm, opencv-2.4.8-android-arm (.so файлов) и javacpp, javacv банки. Его работа хорошая.java.lang.NoClassDefFoundError: java.lang.ClassNotFoundException в андроиде

После этого я добавляю приложение Vitamio library в свое приложение. Vitamio состоит из нескольких банок, таких как ffmpeg и т. Д. Добавив, что я получаю сообщение об ошибке «class not found exception».

И мое сообщение об ошибке: link

я получаю ошибку в этом коде:

private void initRecorder() { 

    Log.w(LOG_TAG,"init recorder"); 

    if (yuvIplimage == null) { 
     yuvIplimage = IplImage.create(imageWidth, imageHeight, IPL_DEPTH_8U, 2); //error here. 
//  Log.i(LOG_TAG, "create yuvIplimage"); 
    } 

    Log.i(LOG_TAG, "ffmpeg_url: " + ffmpeg_link); 
    recorder = new FFmpegFrameRecorder(ffmpeg_link, imageWidth, imageHeight, 1); 
    recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264) ; 
    recorder.setFormat("flv"); 
    recorder.setSampleRate(sampleAudioRateInHz); 
    // Set in the surface changed method 
    // myPreference.getString("rtmp_url", "sample1"); 
    recorder.setFrameRate(frameRate); 

    Log.i(LOG_TAG, "recorder initialize success"); 

    audioRecordRunnable = new AudioRecordRunnable(); 
    audioThread = new Thread(audioRecordRunnable); 
} 

Пожалуйста, помогите мне

+0

@M D, ссылка на сообщение об ошибке исчезла. Повторите попытку и поместите ссылку. – InnocentKiller

+0

В вашем журнале: файл libopencv_core.so отсутствует. Проверьте файл Android.mk – saa

+0

Вероятно, это связано с этой проблемой: http://code.google.com/p/javacv/issues/detail?id=199 –

ответ

0
  1. Класс не найден Исключение возникает, когда вы не объявлять вашей деятельности в файле манифеста.
  2. Иногда его также можно удалить, очистив проект, затем Перейти к свойствам: Java Build Path В этом тике частных библиотек Android Переместите папку src и gen вверху. Порядок будет firsr папку SRC, а затем папку генераторных Также отметьте все библиотеки, которые включены duringly добавления файла банку
+1

проверял оба пункта, но не использовал их. – Venu

1

В журнале ошибок

Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: could not load library "libopencv_core.so" needed by "libjniopencv_core.so"; caused by library "libopencv_core.so" not found 

Its кажется, что вы не загрузили libopencv_core в вашем приложении. Загрузите эту библиотеку с помощью

System.loadLibrary("libopencv_core") 

перед использованием любой функции этой библиотеки. Было бы лучше, если вы загрузите это в onCreate() основного вида деятельности.

+0

на самом деле, если я удалю библиотеку vitamio своей работоспособностью. Я думаю, из-за какого-то конфликта между ними я получаю эту ошибку. – Venu

+0

@Seshu вы можете разместить код, в котором вы загрузили эти библиотеки. –

+0

я обновляю свой код, смотрю его один раз. Я следую этому [link] (http://www.walking-productions.com/notslop/2013/01/ 16/android-live-streaming-courtesy-of-javacv-and-ffmpeg /). Его работа хорошая после добавления этой витабио только я получаю ошибку в этом коде. – Venu

0

Добавьте следующий блок кода

static 
{ 
    System.loadLibrary("libopencv_core") 
} 

Как это static блок будет называться перед чем-то еще, и ваша библиотека будет загружена. Сделайте это для всех других родных библиотек, которые вы хотите использовать.

+0

Фактически, если я удалю библиотеку vitamio, ее работа.Я думаю, из-за какого-то конфликта между ними я получаю эту ошибку. – Venu