從我的應用程序中,我打開ACTION_GET_CONTENT的文檔來獲取視頻。我在onActivityResult()中獲得一個Uri,並使用它在我的應用程序中創建一個新的活動。除了一些三星設備,至少galaxy S5和galaxy S5 mini,它會在Intent.putExtra()中崩潰並帶有NullPointerException,這一般很好。某些三星設備上的Intent.putExtra()出現故障
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (requestCode == 1 && intent != null && intent.getData() != null) {
Intent i = new Intent(this, MyActivity.class);
Uri uri = intent.getData()
/**
* Galaxy S5 will crash here
*/
i.putExtra("uri", uri);
startActivity(i);
}
}
任何想法什麼可能是錯的?該URI本身不爲空,如果我登錄,我得到:
content://com.android.providers.media.documents/document/video%3A459
我得到的日誌:
2016-02-04 11:05:09.120 ERROR: AndroidRuntime : Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
2016-02-04 11:05:09.120 ERROR: AndroidRuntime : at android.content.Intent.putExtra(Intent.java:6471)
2016-02-04 11:05:09.120 ERROR: AndroidRuntime : at com.mbonnin.app.ui.activity.MainActivity.onActivityResult(MainActivity.java:337)
「Intent」中沒有任何'putExtra'方法,它接受'Uri ',你如何在其他手機上編碼工作應該是關注的問題。嘗試按照@anshuljain – Rohit5k2
@ Rohit5k2的建議發送數據爲'String',但有一個接受'Uri'實現的'Parcelable'。 –