2013-03-01 2 views
0

안녕하세요 제스처를 인식하는 앱을 만들고 있습니다. 내 프로그램에서 Google의 제스처 검색 리소스 파일을 사용하려고합니다.내 애플리케이션에 제스처 검색 리소스 가져 오기

문제 : 제스처 리소스 파일이 내 응용 프로그램과 (에뮬레이터) 또한 제스처 빌더

내 질문 충돌 : 어떻게 구글 않고 제스처 리소스 파일을로드 (내가 얼마나 차례) 메모리 오류가 발생 했습니까? 아래

오류 로그 :

03-01 13:02:55.406: E/dalvikvm-heap(32207): Out of memory on a 13893864-byte allocation. 
03-01 13:02:55.416: E/AndroidRuntime(32207): FATAL EXCEPTION: main 
03-01 13:02:55.416: E/AndroidRuntime(32207): java.lang.OutOfMemoryError 
03-01 13:02:55.416: E/AndroidRuntime(32207): at java.util.ArrayList.<init>(ArrayList.java:75) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at android.gesture.GestureStroke.deserialize(GestureStroke.java:223) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at android.gesture.Gesture.deserialize(Gesture.java:277) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at android.gesture.GestureStore.readFormatV1(GestureStore.java:322) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at android.gesture.GestureStore.load(GestureStore.java:293) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at android.gesture.GestureLibraries$ResourceGestureLibrary.load(GestureLibraries.java:132) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at com.example.transittalker.main.onCreate(main.java:99) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at android.app.Activity.performCreate(Activity.java:5008) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2136) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2207) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at android.app.ActivityThread.access$600(ActivityThread.java:139) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at android.os.Handler.dispatchMessage(Handler.java:99) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at android.os.Looper.loop(Looper.java:137) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at android.app.ActivityThread.main(ActivityThread.java:4899) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at java.lang.reflect.Method.invokeNative(Native Method) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at java.lang.reflect.Method.invoke(Method.java:511) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558) 
03-01 13:02:55.416: E/AndroidRuntime(32207): at dalvik.system.NativeStart.main(Native Method) 

답변

0

제스처 라이브러리는 매우 작은 파일로되어 있습니다. 나는 약 8-10 제스처가있는 파일을 가지고 있으며, 단지 6KB입니다. 제스처 빌더를 사용하여이 파일을 생성 했습니까? 그렇다면 불필요한 제스처를 제거 했습니까 (특히 & 구성 테스트에서)?

그렇지 않으면 제스처 리소스 파일이 확실히 커질 수 있으며 손상되었을 수 있습니다.

가능하면 제스처 빌더를 실행중인 에뮬레이터의 제스처 리소스 파일을 삭제하고 빌더에서 생성 한 깨끗한 파일로 다시 시작하는 것이 좋습니다. 하나 또는 두 개의 제스처만으로 코드를 테스트 한 다음 더 많이 추가하십시오.

편집 : 그냥 확인하지만 제스처 파일은 확장자가 없어야합니다.이 파일은/res/raw 디렉토리에 있어야하며 복사/전송할 때 차이를 만들 수있는 경우 이진 파일입니다.

+0

1. 파일 크기는 250kb입니다. 2. 나는 잘 실행되는 비슷한 크기의 xml을 가지고있다. 3. 제스처 파일이 손상되었는지 나는 알 수 없습니다. 제스처 작성기에서 충돌없이 열 수 없습니다. –

+0

얼마나 많은 제스처가 **이 파일에있을 것으로 추정됩니까? – MandisaW

+0

영어와 숫자뿐만 아니라 모든 문자에 대해 평균 5. –