我有一个简单的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)
答案 0 :(得分:4)
picturePath
的价值是多少?我的预感是你传递的是一个简单的文件系统路径而不是有效的file:
URI。
您可能需要考虑使用 Uri.fromFile
方法而不是Uri.parse
来正确处理此问题。
更新: Card
类不再支持使用addImage
参数调用Uri
。相反,请将图片加载到Bitmap
并调用addImage(Bitmap)
。