我有一个简单的Glass应用程序,使用GDK捕获一些文本并拍照。我可以轻松地创建带有文本和照片的LiveCard,但是当我尝试将实时卡转换为静态卡时,尝试将图像添加到静态卡时会出现空指针异常。这是我的代码的一部分。如果我删除对addImage()的调用,它会把卡张贴得很好。

        Card c = new Card(CompPlayerService.this);
        c.setText("you took a picture of " + MyService.this.personName);
        Uri uri = Uri.parse(picturePath);
        c.addImage( uri);  //<-- this is throwing the NPE
        timelineManager.insert(c);


当我在服务中设置断点时,可以看到picturePath的值不为null,并且与我从同一服务将照片发布到活动卡时使用的确切路径相同,效果很好。这是我得到的例外:

02-17 15:32:25.049  14120-14120/com.example.glassapp E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.NullPointerException
            at com.google.android.glass.app.Card.addImage(Card.java:176)

最佳答案

picturePath的值是什么?我的直觉是您传递的是简单的文件系统路径,而不是有效的file: URI。

您可能要考虑使用Uri.fromFile方法而不是Uri.parse来正确处理此问题。

更新:Card类不再支持使用addImage参数调用Uri。而是将图像加载到Bitmap并调用addImage(Bitmap)

关于android - Glass:尝试将图像添加到静态卡时出现空指针异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21841520/

10-11 01:15