从我的应用程序中,我打开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'。 –