我有一个简单的 Glass 应用程序,它使用 GDK 抓取一些文本并拍照。我可以轻松创建带有文本和照片的 LiveCard,但是当我尝试将实时卡片转换为静态卡片时,当我尝试将图像添加到卡片时出现空指针异常。这是我的代码 fragment 。如果我删除对 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 的值不为空,并且与我从同一服务将照片发布到实时卡片时使用的路径完全相同,效果很好。这是我得到的异常:
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
类不再支持使用Uri
参数调用addImage
。相反,将图像加载到 Bitmap
中并调用 addImage(Bitmap)
。
关于android - 玻璃 : Null pointer exception when trying to add image to Static Card,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21841520/