서적에 관한 질문 및 오류 등을 문의 할 수 있으며, 저자로부터 직접 답변을 받을 수 있습니다.
책을 사서 열심히 공부중인데요
Surface부분을 응용 하다가 막히는 부분이 있어서 질문합니다.
sp<ProcessState> proc(ProcessState::self());
ProcessState::self()->startThreadPool();
sp<SurfaceComposerClient> client = new SurfaceComposerClient();
sp<SurfaceControl> surfaceControl = client->createSurface( getpid(), 0, 160, 240, PIXEL_FORMAT_RGB_565);
client->openTransaction();
surfaceControl->setLayer(100000); <- 이부분
client->closeTransaction();
NDK를 이용해서 진저브레드안에서 lib를 작성하는데
저부분에서 안넘어 가더라구요.
저부분에서 에러가 발생하는거같은데
따로 선행해줘야하는 작업이 있는것인가요?
예를 들어 권한이라든지 .. ;
도움부탁드립니다. ^^
-추가-
디버깅을 해보니 이클립스에서
Permission failure: android.permission.ACCESS_SURFACE_FLINGER from uid=10049 pid=1539
Permission Denial: can't access SurfaceFlinger pid=1539, uid=10049
에러가 보이네요
Manifest 에서
<uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" />
추가를 했는데요 생기네요... ㅎ;
안드로이드 소스안에 sign 할 수 있는 키가 있습니다.
build/target/product/security 에 있는데
이중에 platform.x509.pem 와 platform.pk8가 있습니다.이것을 이용해서 다음과 같이 sign 해주시면 됩니다.
아래에서 사용하는 jar 파일은 안드로이드를 빌드 하면 아래의 위치에 생성됩니다.
./out/host/linux-x86/framework/signapk.jar
sign하는 방법
java -jar cer\signapk.jar cer\platform.x509.pem cer\platform.pk8 <a.apk> <b.apk>
Surface 를 사용하기 위해서는 platform 의 key로 Sign 해야 하는데.... 그것을 책에 쓴것 같은데 안썼나보군요....
@_@;;
찾아보고 방법을 올려드리겠습니다.