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;
}
}