首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoClassDefFoundError: android.graphics.YuvImage (编译但不运行)

NoClassDefFoundError: android.graphics.YuvImage (编译但不运行)
EN

Stack Overflow用户
提问于 2011-02-10 20:08:38
回答 2查看 925关注 0票数 1

我重发这个问题是因为我不确定我之前问的是否正确。:)我正在开发一个包含人脸检测的应用程序。摄像头启动正常。在预览帧回调中,我实例化了一个faceview对象(这个类处理检测)。此类只能检测位图中的人脸,但来自回调的图像是一个YuvImage。我已经将图像压缩为jpeg格式,然后调用一个方法将该jpeg格式转换为位图,这样检测就可以工作了。

我遇到的问题是eclipse告诉我关于我正在使用的YuvImage有一个类不成立异常。我已经下载了yuvimage所属的api8。源代码中没有错误,编译正常。ecilipse不能加载yuvimage类有什么原因吗?这里有一小段,谢谢。

‘'code’

代码语言:javascript
复制
BitmapFactory.Options bfo = new BitmapFactory.Options();
bfo.inPreferredConfig = Bitmap.Config.RGB_565;
Rect rectangle = new Rect(0, 0, width, height);
ByteArrayOutputStream bos = new ByteArrayOutputStream(imageData.length);
try{
    img = new YuvImage(imageData,ImageFormat.NV21,width,height,null);
}catch(Exception e){
    e.printStackTrace();
}
img.compressToJpeg(rectangle, 100, bos);
byte[] array = bos.toByteArray();


sourceImage = BitmapFactory.decodeByteArray(array, 0, array.length);

异常跟踪:

代码语言:javascript
复制
02-10 11:53:07.298: ERROR/dalvikvm(2364): Could not find class 'android.graphics.YuvImage', referenced from method com.tecmark.FaceView.<init>
02-10 11:53:07.468: ERROR/AndroidRuntime(2364): Uncaught handler: thread main exiting due to uncaught exception
02-10 11:53:07.473: ERROR/AndroidRuntime(2364): java.lang.NoClassDefFoundError: android.graphics.YuvImage
02-10 11:53:07.473: ERROR/AndroidRuntime(2364):     at com.tecmark.FaceView.<init>(FaceView.java:60)
02-10 11:53:07.473: ERROR/AndroidRuntime(2364):     at com.tecmark.cameraView$1.onPreviewFrame(cameraView.java:111)
02-10 11:53:07.473: ERROR/AndroidRuntime(2364):     at android.hardware.Camera$EventHandler.handleMessage(Camera.java:395)
02-10 11:53:07.473: ERROR/AndroidRuntime(2364):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-10 11:53:07.473: ERROR/AndroidRuntime(2364):     at android.os.Looper.loop(Looper.java:123)
02-10 11:53:07.473: ERROR/AndroidRuntime(2364):     at android.app.ActivityThread.main(ActivityThread.java:4363)
02-10 11:53:07.473: ERROR/AndroidRuntime(2364):     at java.lang.reflect.Method.invokeNative(Native Method)
02-10 11:53:07.473: ERROR/AndroidRuntime(2364):     at java.lang.reflect.Method.invoke(Method.java:521)
02-10 11:53:07.473: ERROR/AndroidRuntime(2364):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
02-10 11:53:07.473: ERROR/AndroidRuntime(2364):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
02-10 11:53:07.473: ERROR/AndroidRuntime(2364):     at dalvik.system.NativeStart.main(Native Method)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-10 20:20:27

确保您的目标是正确版本的SDK。在Eclipse中,右键单击您的项目,选择Properties,然后选择Android。应该选择Api 8作为项目的构建目标。

您还应该在清单xml中设置最小SDK属性(尽管这与错误无关)。

票数 2
EN

Stack Overflow用户

发布于 2011-02-10 20:22:39

确保包com.tecmark.FaceView可用于您的项目。类似于:

package com.tecmark.FaceView应该出现在此文件中代码的顶部。

HTH,

Sriram

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4956876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档