This error occurs when I move large files (1G)

Viewed 34

This error occurs when I move large files (1G) java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Parcelable android.os.Bundle.getParcelable(java.lang.String)' on a null object reference

log

09-16 14:19:05.231  1840  1866 W ActivityManager: Spurious death for ProcessRecord{bebf0e 0:com.android.externalstorage/u0a53}, curProc for 5739: null
09-16 14:19:05.236  5542  6158 W DocumentsContract: Failed to move document
09-16 14:19:05.236  5542  6158 W DocumentsContract: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Parcelable android.os.Bundle.getParcelable(java.lang.String)' on a null object reference
09-16 14:19:05.236  5542  6158 W DocumentsContract:     at android.provider.DocumentsContract.moveDocument(DocumentsContract.java:1472)
09-16 14:19:05.236  5542  6158 W DocumentsContract:     at com.android.documentsui.services.MoveJob.processDocument(MoveJob.java:152)
09-16 14:19:05.236  5542  6158 W DocumentsContract:     at com.android.documentsui.services.CopyJob.processDocumentThenUpdateProgress(CopyJob.java:355)
09-16 14:19:05.236  5542  6158 W DocumentsContract:     at com.android.documentsui.services.CopyJob.start(CopyJob.java:230)
09-16 14:19:05.236  5542  6158 W DocumentsContract:     at com.android.documentsui.services.Job.run(Job.java:160)
09-16 14:19:05.236  5542  6158 W DocumentsContract:     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
09-16 14:19:05.236  5542  6158 W DocumentsContract:     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
09-16 14:19:05.236  5542  6158 W DocumentsContract:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
09-16 14:19:05.236  5542  6158 W DocumentsContract:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
09-16 14:19:05.236  5542  6158 W DocumentsContract:     at java.lang.Thread.run(Thread.java:919)

android/provider/DocumentsContract.java

/**
     * Moves the given document under a new parent.
     *
     * @param sourceDocumentUri document with {@link Document#FLAG_SUPPORTS_MOVE}
     * @param sourceParentDocumentUri parent document of the document to move.
     * @param targetParentDocumentUri document which will become a new parent of the source
     *         document.
     * @return the moved document, or {@code null} if failed.
     */
    public static @Nullable Uri moveDocument(@NonNull ContentResolver content,
            @NonNull Uri sourceDocumentUri, @NonNull Uri sourceParentDocumentUri,
            @NonNull Uri targetParentDocumentUri) throws FileNotFoundException {
        try {
            final Bundle in = new Bundle();
            in.putParcelable(DocumentsContract.EXTRA_URI, sourceDocumentUri);
            in.putParcelable(DocumentsContract.EXTRA_PARENT_URI, sourceParentDocumentUri);
            in.putParcelable(DocumentsContract.EXTRA_TARGET_URI, targetParentDocumentUri);

            final Bundle out = content.call(sourceDocumentUri.getAuthority(),
                    METHOD_MOVE_DOCUMENT, null, in);
            return out.getParcelable(DocumentsContract.EXTRA_URI);
        } catch (Exception e) {
            Log.w(TAG, "Failed to move document", e);
            rethrowIfNecessary(e);
            return null;
        }
    }
0 Answers
Related