0

我正在使用Titanium SDK 2.1.3並開發iOS和Android。我們的應用程序可以打開文件(目前txt和Android上的圖像),在iOS中,我們使用一個特殊的庫來處理這些文件,而在Android中,我們希望使用Android的意圖打開這些文件。但是這會導致Android上的圖像發生異常,並說got exception decoding bitmap。這裏是我的代碼,使意圖:Titanium Android - 嘗試打開圖像時出現異常解碼位圖

var appFile = Ti.Filesystem.getFile(fileNativePath); 
if(appFile) 
{       
    var intent = Ti.Android.createIntent({ 
     action : Ti.Android.ACTION_VIEW, 
     type : appFile.read().mimeType, 
     data : appFile.nativePath 
    }); 
    try { 
     Ti.Android.currentActivity.startActivity(intent); 
    } 
    catch(e) 
    { 
     Ti.API.error(e); 
     alert('No apps for this'); 
    } 
} 

對我試圖打開圖像的本地路徑如下:

file:///data/data/nenvo.com.desktop/app_appdata/1372368987874.jpg 

完整的例外是:

[ERROR][UriImage(2887)] got exception decoding bitmap 
[ERROR][UriImage(2887)] java.lang.NullPointerException 
[ERROR][UriImage(2887)] at com.android.camera.Util.makeInputStream(Util.java:336) 
[ERROR][UriImage(2887)] at com.android.camera.Util.makeBitmap(Util.java:307) 
[ERROR][UriImage(2887)] at com.android.camera.Util.makeBitmap(Util.java:299) 
[ERROR][UriImage(2887)] at com.android.camera.gallery.UriImage.fullSizeBitmap(UriImage.java:94) 
[ERROR][UriImage(2887)] at com.android.camera.gallery.UriImage.fullSizeBitmap(UriImage.java:86) 
[ERROR][UriImage(2887)] at com.android.camera.gallery.UriImage.thumbBitmap(UriImage.java:120) 
[ERROR][UriImage(2887)] at com.android.camera.ImageGetter$ImageGetterRunnable.executeRequest(ImageGetter.java:173) 
[ERROR][UriImage(2887)] at com.android.camera.ImageGetter$ImageGetterRunnable.run(ImageGetter.java:149) 
[ERROR][UriImage(2887)] at java.lang.Thread.run(Thread.java:856) 
[WARN][NetworkManagementSocketTagger( 76)] setKernelCountSet(10044, 0) failed with errno -2 
[ERROR][UriImage(2887)] got exception decoding bitmap 
[ERROR][UriImage(2887)] java.lang.NullPointerException 
[ERROR][UriImage(2887)] at com.android.camera.Util.makeInputStream(Util.java:336) 
[ERROR][UriImage(2887)] at com.android.camera.Util.makeBitmap(Util.java:307) 
[ERROR][UriImage(2887)] at com.android.camera.Util.makeBitmap(Util.java:299) 
[ERROR][UriImage(2887)] at com.android.camera.gallery.UriImage.fullSizeBitmap(UriImage.java:94) 
[ERROR][UriImage(2887)] at com.android.camera.ImageGetter$ImageGetterRunnable.executeRequest(ImageGetter.java:204) 
[ERROR][UriImage(2887)] at com.android.camera.ImageGetter$ImageGetterRunnable.run(ImageGetter.java:149) 
[ERROR][UriImage(2887)] at java.lang.Thread.run(Thread.java:856) 

我的方法有什麼問題?感謝您提前提供任何幫助。

+1

這個文件的世界可讀嗎?路徑看起來像只讀,所以你不能通過意圖分享它...也許嘗試將它移動到某處或共享整個圖像本身? –

+0

是的,這個伎倆,把它作爲答案,所以我可以評價它。 –

+0

你可以發表答案嗎? – GaneshKumar

回答

0

的路徑看起來是隻讀的,因爲它是在應用程序數據目錄,所以你不能透過的意圖分享...

所以看起來你有幾個選擇,要麼某處複製否則,或者只是將整個圖像本身分享爲一個blob。

發生這種情況是因爲(從我所知道的情況來看)Android平臺的本機查看器會引發異常,並且權限爲READ_ONLY時會引發異常。 This answer has a little more information about that.

相關問題