首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌眼镜手势崩溃(EyeGestureLib)

谷歌眼镜手势崩溃(EyeGestureLib)
EN

Stack Overflow用户
提问于 2014-11-30 14:21:26
回答 1查看 274关注 0票数 4

我试着用EyeGestureLib检查玻璃上的Wink。

我创建了一个新项目,就像这个家伙对示例项目这里所做的那样。

我的代码的问题部分如下:

代码语言:javascript
复制
private EyeGestureManager mEyeGestureManager;
private EyeGestureListener mEyeGestureListener;

private EyeGesture target1 = EyeGesture.WINK;
private EyeGesture target2 = EyeGesture.DOUBLE_BLINK;

在onCreate内部,我有:

代码语言:javascript
复制
    mEyeGestureManager = EyeGestureManager.from(this);
    mEyeGestureListener = new EyeGestureListener();

    // print out each eye gesture is supported or not
    for (EyeGesture eg : EyeGesture.values()) {
        boolean supported = mEyeGestureManager.isSupported(eg);
        Log.d(TAG, eg.name() + ":" + supported);
    }

我的程序在打开后立即崩溃。我意识到问题在于当它试图访问mEyeGestureManager时。在代码中使用mEyeGestureManager的任何地方都会使程序crash.According与我所观察到的一样,即使在mEyeGestureManager = EyeGestureManager.from(this);之后,mEyeGestureManager也是空的。

当我改变

mEyeGestureManager = EyeGestureManager.from(this);

代码语言:javascript
复制
mEyeGestureManager = new EyeGestureManager();

它停止崩溃,mEyeGestureManager不再为null,但不会检测眨眼或双眨眼。

我的眼镜运行的是XE21,但我将其降级为XE18.3,因为我的研究表明,EyeGestureLib在glass > XE18.3上不能正常工作。

EyeGestures在19.1没有工作

https://github.com/thorikawa/EyeGestureLib/issues/2

现在我有了XE18.3,但它不起作用。当我有mEyeGestureManager =新的EyeGestureManager()时,Wink就不能工作了;我得到:

代码语言:javascript
复制
Supported:﹕ BLINK:false
Supported:﹕ DOFF:false
Supported:﹕ DON:false
Supported:﹕ DOUBLE_BLINK:false
Supported:﹕ DOUBLE_WINK:false
Supported:﹕ LOOK_AT_SCREEN:false
Supported:﹕ LOOK_AWAY_FROM_SCREEN:false
Supported:﹕ WINK:false

但当我有:

代码语言:javascript
复制
mEyeGestureManager = EyeGestureManager.from(this);

它马上就坠毁了。

我去安装了已编译的示例“EyeGestureDemo-调试-1.1.apk”工作得很好,但我的没有。

我做错了什么?我已经尝试了三天了。谷歌没有官方的API,但我不想等到他们发布一个。我需要这个作为我的学校项目尽快。有人知道问题出在哪里吗?

编辑:崩溃日志

代码语言:javascript
复制
12-02 09:39:54.347    3758-3758/com.inno.inno.glassplugin D/AndroidRuntime﹕ Shutting down VM
12-02 09:39:54.347    3758-3758/com.inno.inno.glassplugin W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41f78bd8)
12-02 09:39:54.363    3758-3758/com.inno.inno.glassplugin E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.inno.inno.glassplugin, PID: 3758
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.inno.inno.glassplugin/com.inno.inno.glassplugin.MainActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2235)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2285)
            at android.app.ActivityThread.access$800(ActivityThread.java:138)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1236)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:149)
            at android.app.ActivityThread.main(ActivityThread.java:5061)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at com.inno.inno.glassplugin.MainActivity.onCreate(MainActivity.java:92)
            at android.app.Activity.performCreate(Activity.java:5236)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1089)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2199)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2285)
            at android.app.ActivityThread.access$800(ActivityThread.java:138)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1236)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:149)
            at android.app.ActivityThread.main(ActivityThread.java:5061)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
            at dalvik.system.NativeStart.main(Native Method)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-02 17:51:32

API很久以前就已经改变了(我认为大约在XE 20左右)。

为了找出EyeGestureManager的工作原理,我不得不用反射进行大量的挖掘。

下面是我的更新版本,以及一些演示用法的示例代码:https://gist.github.com/victorkp/9094a6aea9db236a97f3

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27214236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档