2013-02-20 3 views
0

네이티브 코드에서 서페이스의 버퍼를 공급하려고합니다. 그래서 SurfaceView의 SurfaceHolder의 getSurface 메소드로부터 표면을 얻습니다. 이제는 네이티브에서 버퍼를 사용하여 이미지를 렌더링하는 것이 좋습니다. 나는 SurfaceClinger/Surface.h를 포함시켰다. 하지만 mSurface 속성을 가져 오려고하면 mSurface에 대해 java.lang.NoSuchFieldException을 말하는 오류가 발생합니다. 이와 관련하여 어떤 제안이 도움이 될 것입니다.안드로이드 : java.lang.NoSuchField 네이티브에서 서페이스를 사용하려고 시도하는 동안 mSurface 예외

코드 :

Surface  mSurface; 
SurfaceHolder mSurfaceHolder; 

mSurface = mSurfaceHolder.getSurface(); 

try{ 
    class myClass = mSurface.getClass(); 
    String fieldName = "mSurface"; 
    Field field = myClass.getDeclaredField(fieldName); 
    field.setAccesssible(true); 
    int surfacePtr = field.getInt(mSurface); 
    nativeInterface.DrawOnSurface(surfacePtr); 
} 
catch(Exception ex){} 

감사합니다.

+1

오류 코드 스 니펫을 게시 하시겠습니까? – SudoRahul

답변

0

gingerbread부터 필드 이름이 다릅니다. 'mSurface'의 fieldname을 'mNativeSurface'로 바꾸면 문제가 해결됩니다. froyo와 아래 'mSurface'가 작동합니다.