1

我的应用程序由ffmpeg, javacv-android-arm, opencv-2.4.8-android-arm(.so 文件) 和javacpp, javacvjars 组成。它的工作很好。

之后,我将Vitamio library应用程序添加到我的应用程序中。Vitamio包含一些罐子,如 asffmpeg等。添加后,我收到“找不到类异常”之类的错误。

我的错误信息是: 链接

我在这段代码中收到错误:

 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);
}

请帮我

4

3 回答 3

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

看起来你还没有加载libopencv_core到你的应用程序中。使用加载此库

System.loadLibrary("libopencv_core")

在使用这个库的任何功能之前。如果您将其加载到onCreate()主要活动中会更好。

于 2014-02-04T11:35:22.383 回答
0
  1. 当您没有在清单文件中声明您的活动时,会出现找不到类异常。
  2. 有时也可以通过清理项目然后转到属性来删除它:Java 构建路径在此勾选中,将 android Private Libraries Move src 和 gen 文件夹放在顶部。顺序将是 firsr src 文件夹,然后是 gen 文件夹 还要勾选添加 jar 文件期间包含的所有库
于 2014-02-04T11:31:03.687 回答
0

将以下块添加到您的代码中

static
{
  System.loadLibrary("libopencv_core")
}

由于它是一个static块,它将在其他任何事情之前被调用,并且您的库将被加载。对您也想使用的所有其他本机库执行此操作。

于 2014-02-04T12:03:32.690 回答