将Gesture搜索资源导入我的应用程序

时间:2013-03-01 21:08:41

标签: java android gesture gestures

您好我一直在制作识别手势的应用。我正在尝试在我的程序中使用Google的手势搜索资源文件。

问题:手势资源文件崩溃我的应用程序和手势构建器(在模拟器上)

我的问题: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)

1 个答案:

答案 0 :(得分:0)

手势库应该是相当小的文件。我有一个大约8-10个手势的文件,它只有6KB。您是否使用Gesture Builder生成此文件,如果是这样,您是否删除了任何无关的手势(特别是来自测试和构建)?

如果没有,手势资源文件肯定会变得非常大并且可能会被破坏。

如果可能的话,我建议从运行Gesture Builder的模拟器中删除手势资源文件,然后重新开始使用Builder生成的干净文件。尝试使用一个或两个手势测试您的代码,然后添加更多。

编辑:只是检查,但你的手势文件不应该有一个扩展名,它应该在/ res / raw目录中,并且它是一个二进制文件,如果你复制/转移它可能会有所不同。 / p>