Glass:尝试将图像添加到静态卡时出现空指针异常

时间:2014-02-17 23:39:21

标签: android service nullpointerexception photo google-glass

我有一个简单的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)

1 个答案:

答案 0 :(得分:4)

picturePath的价值是多少?我的预感是你传递的是一个简单的文件系统路径而不是有效的file: URI。

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

更新: Card类不再支持使用addImage参数调用Uri。相反,请将图片加载到Bitmap并调用addImage(Bitmap)