2014-02-17 74 views
1

我有一個簡單的玻璃應用程序使用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的值不爲空,是我用同樣的確切路徑時,我張貼在相同業務,照片現場卡,工作正常。這裏的例外,我得到:

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

您正在讀取堆棧跟蹤錯誤。 NPE在類Card的方法addImage中,而不是在那行代碼中,但是更深一層。 Card.java第176行,您必須查看該代碼。我猜這個URI並沒有指向一個有效的圖像。 – cistearns

+0

那爲什麼在現場卡上的圖像完全相同? – Ben

+0

不知道。這就是爲什麼我沒有提出答案的原因,只是NPE實際上並不在你的代碼中,而是在更深層次上。而且由於刪除了線條,人們只能假設它至少與uri相切。也許輸出uri.toString,這樣我們可以看到它,這可能會給其他人一個想法? – cistearns

回答

4

什麼是 picturePath價值?我的直覺是你傳遞一個簡單的文件系統路徑而不是有效的 file: URI。

您可能需要考慮使用 Uri.fromFile方法而不是 Uri.parse來正確處理此問題。

UPDATE:Card類不再支持調用addImageUri說法。相反,將圖像加載到Bitmap並致電addImage(Bitmap)

+0

真棒,那就是訣竅!讓我質疑Uri.parse,雖然...似乎應該工作以及... – Ben

相關問題