科尔多瓦的resolveLocalFileSystemURL错误代码在Android 1000

安德烈(Andrei Belokopytov)

当我使用带有某些类型的文件uri(例如content://com.android.providers.downloads.documents/document/some_doc)的cordova函数resolveLocalFileSystemURL时,我收到代码1000的错误。我使用的是Cordova 5.1和5版本的Android在智能手机上。

adb logcat显示以下内容:

W/System.err(28721): java.lang.NullPointerException: Attempt to invoke virtual method 'long java.lang.Long.longValue()' on a null object reference
W/System.err(28721):    at org.apache.cordova.file.ContentFilesystem.getFileMetadataForLocalURL(ContentFilesystem.java:130)
W/System.err(28721):    at org.apache.cordova.file.Filesystem.exists(Filesystem.java:130)
W/System.err(28721):    at org.apache.cordova.file.FileUtils.resolveLocalFileSystemURI(FileUtils.java:624)
W/System.err(28721):    at org.apache.cordova.file.FileUtils.access$400(FileUtils.java:51)
W/System.err(28721):    at org.apache.cordova.file.FileUtils$14.run(FileUtils.java:383)
W/System.err(28721):    at org.apache.cordova.file.FileUtils$25.run(FileUtils.java:566)
W/System.err(28721):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/System.err(28721):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/System.err(28721):    at java.lang.Thread.run(Thread.java:818)

是否可以通过cordova打开此文件?

亚当·罗伯森

我已经解决了这个问题。在Android 5中,光标现在是DocumentCursor而不是Media Cursor,这意味着它正在寻找错误的列。当找不到该列时,该插件会尝试将一个原语long设置为null,这会导致NullPointerException。

@Override
public JSONObject getFileMetadataForLocalURL(LocalFilesystemURL inputURL) throws FileNotFoundException {
    long size = -1;
    long lastModified = 0;
    Uri nativeUri = toNativeUri(inputURL);
    String mimeType = resourceApi.getMimeType(nativeUri);
    Cursor cursor = openCursorForURL(nativeUri);
    try {
        if (cursor != null && cursor.moveToFirst()) {
            size = resourceSizeForCursor(cursor);
            Long modified = lastModifiedDateForCursor(cursor);
            if (modified != null)
                lastModified = modified.longValue();
        } else {
            // Some content providers don't support cursors at all!
            CordovaResourceApi.OpenForReadResult offr = resourceApi.openForRead(nativeUri);
            size = offr.length;
        }
    } catch (IOException e) {
        throw new FileNotFoundException();
    } finally {
        if (cursor != null)
            cursor.close();
    }

    JSONObject metadata = new JSONObject();
    try {
        metadata.put("size", size);
        metadata.put("type", mimeType);
        metadata.put("name", name);
        metadata.put("fullPath", inputURL.path);
        metadata.put("lastModifiedDate", lastModified);
    } catch (JSONException e) {
        return null;
    }
    return metadata;
}

protected Long lastModifiedDateForCursor(Cursor cursor) {
    int columnIndex = cursor.getColumnIndex(MediaStore.MediaColumns.DATE_MODIFIED);
    if (columnIndex == -1) {
        columnIndex = cursor.getColumnIndex(DocumentsContract.Document.COLUMN_LAST_MODIFIED);
    }
    if (columnIndex != -1) {
        String dateStr = cursor.getString(columnIndex);
        if (dateStr != null) {
            return Long.parseLong(dateStr);
        }
    }
    return null;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

科尔多瓦运行ios错误..命令的错误代码65:带有args的xcodebuild:

来自分类Dev

com.apple.AuthenticationServices.Authorization错误代码1000

来自分类Dev

科尔多瓦添加平台android错误

来自分类Dev

科尔多瓦的错误攀登Android

来自分类Dev

科尔多瓦WMIC错误

来自分类Dev

Hadoop错误代码-1000,任何本地目录中均没有可用空间

来自分类Dev

Hadoop错误代码-1000,任何本地目录中均没有可用空间

来自分类Dev

故障排除错误代码 1000 应用程序崩溃

来自分类Dev

科尔多瓦Android构建退出代码8

来自分类Dev

科尔多瓦Android构建退出代码8

来自分类Dev

科尔多瓦(android):在侦听Android目标时发生错误

来自分类Dev

科尔多瓦Android平台添加Android错误3.3

来自分类Dev

科尔多瓦Android ReactJS

来自分类Dev

科尔多瓦平台添加Android在JAVA_HOME错误

来自分类Dev

科尔多瓦:无法添加android平台,出现EACCES错误

来自分类Dev

科尔多瓦获取transformClassesWithJarMergingForDebug构建错误

来自分类Dev

科尔多瓦短信插件-javascript错误

来自分类Dev

科尔多瓦本地ajax请求错误

来自分类Dev

科尔多瓦建立Ubuntu的错误?

来自分类Dev

科尔多瓦获取transformClassesWithJarMergingForDebug构建错误

来自分类Dev

新鲜的科尔多瓦建立错误

来自分类Dev

科尔多瓦本地通知错误

来自分类Dev

Lixf Color 1000 Alljoyn Onboardnig错误

来自分类Dev

科尔多瓦/ phonegap平台android

来自分类Dev

Phonegap相机Android杀死科尔多瓦

来自分类Dev

科尔多瓦android修订到低

来自分类Dev

科尔多瓦android黑闪屏

来自分类Dev

科尔多瓦android滚动/性能问题

来自分类Dev

科尔多瓦无法构建Android

Related 相关文章

热门标签

归档