【发布时间】:2013-06-28 20:44:59
【问题描述】:
我正在使用 Titanium SDK 2.1.3 并为 iOS 和 Android 进行开发。我们的应用程序可以打开文件(目前在 Android 上是 txt 和图像),在 iOS 中我们使用一个特殊的库来处理文件,而在 Android 中我们想要使用 Android 的意图打开文件。但这会导致 Android 上的图像出现异常,即 got exception decoding bitmap。这是我制作 Intent 的代码:
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)
我的方法有什么问题?提前感谢您的帮助。
【问题讨论】:
-
该文件是否可读?该路径看起来是只读的,因此您无法通过意图共享它...也许尝试将其移动到某个地方或共享整个图像本身?
-
是的,这成功了,把它作为答案,这样我就可以给它评分了。
-
你能发布答案吗?
-
答案已经贴在下面了
标签: android android-intent filesystems titanium titanium-mobile