NoClassDefFoundError: android.graphics.YuvImage (компилируется, но не запускается) - PullRequest
1 голос
/ 10 февраля 2011

Я пересылаю этот вопрос, потому что я не уверен, правильно ли я задал этот вопрос раньше. :) Я работаю над приложением, которое включает в себя распознавание лиц.камера загружается нормально.в обратном вызове фрейма предварительного просмотра я создаю объект faceview (этот класс обрабатывает обнаружение).этот класс может обнаруживать только лица в растровом изображении, но изображение из обратного вызова является YuvImage.Я сжал изображение в JPEG, а затем вызвал метод для преобразования этого JPEG в растровое изображение, так что обнаружение будет работать.

Проблема, с которой я столкнулся, заключается в том, что затмение говорит о том, что существует класс notfoundexception относительно YuvImage, который я использую.Я скачал api8, частью которого является yuvimage.в исходном коде нет ошибок, и он компилируется нормально.есть ли причина, по которой ecilipse не может загрузить класс yuvimage?вот фрагмент, спасибо.

'code'

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

Трассировка исключений:

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)

Ответы [ 2 ]

2 голосов
/ 10 февраля 2011

Убедитесь, что вы указали правильную версию SDK. В Eclipse щелкните правой кнопкой мыши свой проект, выберите «Свойства», а затем Android. Api 8 должен быть выбран в качестве цели сборки проекта.

Вы также должны установить минимальный атрибут SDK в манифесте xml (это не имеет отношения к ошибке).

1 голос
/ 10 февраля 2011

Убедитесь, что пакет com.tecmark.FaceView доступен для вашего проекта.Что-то вроде:
package com.tecmark.FaceView должно присутствовать в верхней части вашего кода в этом файле.

HTH,
Шрирам

...