2011-02-10 3 views
1

나는 정확하게 물었는지 확신 할 수 없어이 질문을 다시 게시합니다. :) 얼굴 인식 기능이 포함 된 앱에서 작업하고 있습니다. . 카메라가 정상적으로 부팅됩니다. 미리보기 프레임 콜백 내에서 Faceview 객체를 인스턴스화합니다 (이 클래스는 감지를 처리합니다). 이 클래스는 비트 맵의 ​​얼굴 만 감지 할 수 있지만 콜백의 이미지는 YuvImage입니다. 이미지를 jpeg로 압축 한 다음 해당 jpeg를 비트 맵으로 변환하는 메서드를 호출하므로 검색이 작동합니다.NoClassDefFoundError : android.graphics.YuvImage (컴파일했지만 실행되지 않음)

내가 가지고있는 문제는 일식이 내가 사용하고있는 YuvImage에 관한 classnotfoundexception이 있다고 말하는 것입니다. yuvimage가 포함되어있는 api8을 다운로드했습니다. 소스 코드에 오류가 없으며 컴파일됩니다. ealipse가 yuvimage 클래스를로드 할 수없는 이유가 있습니까? 여기에 스 니펫, 감사합니다.

'코드'

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) 
+0

@kgiannakakis 덕분에, 내가 포럼에 새로운 아직 일을 포맷하는 방법을 잘 모르겠어요 :) 난 후 정보를 수정했습니다 – turtleboy

+0

. 이것은 ClassNotFoundException * 예외가 아닌 NoClassDefFoundError * 런타임 오류 *입니다. –

답변

2

당신이 SDK의 적절한 버전을 목표로하고 있는지 확인합니다. Eclipse에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 Android를 선택합니다. Api 8을 프로젝트의 빌드 타겟으로 선택해야합니다.

매니페스트 XML에도 최소 SDK 속성을 설정해야합니다 (오류와는 아무 관계가 없음).

+0

안녕하세요, 옙 그냥 속성 -> 안드로이드를 확인했습니다 및 API 수준이 8이고 대상 이름이 2.2로 설정되어 거기에 내가 할 수있는 다른 무엇입니까? – turtleboy

+0

@turtleboy 에뮬레이터/장치가 완전히 2.2 규격을 준수합니까? 프로젝트 설정과 관계없이이 오류가 발생할 수 있습니다. –

+0

@pst 방금 전화를 확인했으며 펌웨어 버전은 2.1입니다. api7의 모든 내용이 전화기에서 작동하지만 YuvImage는 api8 이상입니다. 2.1은 api8을 사용할 수 있습니까? – turtleboy

1

com.tecmark.FaceView 패키지가 프로젝트에서 사용 가능한지 확인하십시오. 다음과 같은 내용이이 파일에 코드 상단에
package com.tecmark.FaceView이 있어야합니다.

HTH,
스리 람

+0

예, 두 패키지 모두 같은 패키지에 있습니다. com.tecmark – turtleboy

관련 문제