2013-12-08 25 views
1

嘗試將圖像Uri添加到Card時,出現NullPointerException。有什麼想法嗎?這是GDK中的錯誤嗎?該方法是documented調用Card.addImage(Uri)時發生NullPointerException

相關代碼:

for (CardPresenter cardPresenter : mCardPresenters) { 
    Card card = new Card(this); 
    card.setText(cardPresenter.getText()); 
    card.setInfo(cardPresenter.getFooter()); 

    for (Uri uri : cardPresenter.getImages()) { 
     if (uri != null) { 
      Log.w(TAG, "ImageUri: " + uri.toString()); 
      card.addImage(uri); // <!------------------- ERROR 
     } else { 
      Log.w(TAG, "We got a null imageUri!"); 
     } 
    } 

    mCards.add(card); 
} 

堆棧跟蹤:

12-08 12:51:42.211: W/ResultsActivity(10525): ImageUri: /mnt/sdcard/Pictures/BarcodeEye/BarecodeEye_1386528701794.png 
12-08 12:51:42.211: W/dalvikvm(10525): threadid=1: thread exiting with uncaught exception (group=0x40db41f8) 
12-08 12:51:42.218: E/AndroidRuntime(10525): FATAL EXCEPTION: main 
12-08 12:51:42.218: E/AndroidRuntime(10525): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.github.barcodeeye/com.github.barcodeeye.migrated.ResultsActivity}: java.lang.NullPointerException 
12-08 12:51:42.218: E/AndroidRuntime(10525): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 
12-08 12:51:42.218: E/AndroidRuntime(10525): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
12-08 12:51:42.218: E/AndroidRuntime(10525): at android.app.ActivityThread.access$600(ActivityThread.java:123) 
12-08 12:51:42.218: E/AndroidRuntime(10525): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
12-08 12:51:42.218: E/AndroidRuntime(10525): at android.os.Handler.dispatchMessage(Handler.java:99) 
12-08 12:51:42.218: E/AndroidRuntime(10525): at android.os.Looper.loop(Looper.java:137) 
12-08 12:51:42.218: E/AndroidRuntime(10525): at android.app.ActivityThread.main(ActivityThread.java:4424) 
12-08 12:51:42.218: E/AndroidRuntime(10525): at java.lang.reflect.Method.invokeNative(Native Method) 
12-08 12:51:42.218: E/AndroidRuntime(10525): at java.lang.reflect.Method.invoke(Method.java:511) 
12-08 12:51:42.218: E/AndroidRuntime(10525): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
12-08 12:51:42.218: E/AndroidRuntime(10525): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
12-08 12:51:42.218: E/AndroidRuntime(10525): at dalvik.system.NativeStart.main(Native Method) 
12-08 12:51:42.218: E/AndroidRuntime(10525): Caused by: java.lang.NullPointerException 
12-08 12:51:42.218: E/AndroidRuntime(10525): at com.google.android.glass.app.Card.addImage(Card.java:153) 
12-08 12:51:42.218: E/AndroidRuntime(10525): at com.github.barcodeeye.migrated.ResultsActivity.onCreate(ResultsActivity.java:80) 
12-08 12:51:42.218: E/AndroidRuntime(10525): at android.app.Activity.performCreate(Activity.java:4470) 
12-08 12:51:42.218: E/AndroidRuntime(10525): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
12-08 12:51:42.218: E/AndroidRuntime(10525): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
12-08 12:51:42.218: E/AndroidRuntime(10525): ... 11 more 

文件結構:

[email protected]:/mnt/sdcard/Pictures/BarcodeEye $ pwd 
/mnt/sdcard/Pictures/BarcodeEye 
[email protected]:/mnt/sdcard/Pictures/BarcodeEye $ ls -al 
-rw-rw-r-- root  sdcard_rw 23271 2013-12-08 12:41 BarecodeEye_1386528100581.png 
-rw-rw-r-- root  sdcard_rw 23582 2013-12-08 12:43 BarecodeEye_1386528221554.png 
-rw-rw-r-- root  sdcard_rw 21952 2013-12-08 12:45 BarecodeEye_1386528300992.png 
-rw-rw-r-- root  sdcard_rw 19595 2013-12-08 12:47 BarecodeEye_1386528471400.png 
-rw-rw-r-- root  sdcard_rw 22473 2013-12-08 12:51 BarecodeEye_1386528701794.png 
+0

我徑自一個創建了一個問題,因爲我認爲這是最有可能的一個問題與GDK:https://code.google.com/p/google-glass-api/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Priority%20Owner%20Component%20Summary&groupby=&sort = -id&ID = 288 – JRomero

回答

2

的問題是,我並沒有界定方案。

我的URI是:/mnt/sdcard/Pictures/BarcodeEye/BarcodeEye_1386528701794.png
本來應該是:file:///mnt/sdcard/Pictures/BarcodeEye/BarcodeEye_1386528701794.png

的關鍵是使用方法:Uri.fromFile

public Uri getImageUri(String name) { 
    return Uri.fromFile(new File(getImageAbsolutePath(name))); 
} 
相關問題