java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=-1, data=Intent { act=inline-data (has extras) }} to activity {com.example.camerax_final/com.example.camerax_final.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.toString()' on a null object reference at android.app.ActivityThread.deliverResults(ActivityThread.java:4845) at android.app.ActivityThread.handleSendResult(ActivityThread.java:4886) at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.toString()' on a null object reference at com.example.camerax_final.MainActivity.onActivityResult(MainActivity.java:87) at android.app.Activity.dispatchActivityResult(Activity.java:8110) at android.app.ActivityThread.deliverResults(ActivityThread.java:4838) at android.app.ActivityThread.handleSendResult(ActivityThread.java:4886) at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
时间: 2023-12-07 21:04:57 浏览: 245
这个错误信息是由于在 onActivityResult() 方法中,尝试调用一个 null 对象的方法导致的 NullPointerException。具体来说,是在该方法的第 87 行尝试调用了一个 null 对象的 toString() 方法,而这个对象是一个 Uri 对象。因此,你需要先检查 onActivityResult() 方法中获取的 Intent 是否包含有效的 Uri 数据,如果 Uri 为 null,则需要避免调用 toString() 方法。
相关问题
报错 java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=Intent { dat=content://com.android.providers.downloads.documents/document/5 flg=0x1 }} to activity {com.djy.login/com.djy.login.ProfilePictureActivity}: java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
这个错误是由于在某个数组中试图访问一个不存在的索引而引起的。在这种情况下,它似乎是在访问长度为1的数组的第二个元素时发生的。
要解决这个问题,你需要检查你的代码并找出试图访问不存在的数组索引的位置。你可以使用调试器或添加一些日志语句来帮助你找到问题所在。一旦找到了问题所在,你可以通过确保你的数组索引不超出其范围来修复它。
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1003, result=102, data=Intent { (has extras) }} to activity {com.gwater.marinemining/com.gwater.swscs.module.samping.activity.SamplingPointListActivity}: java.lang.UnsupportedOperationException: removeViewAt(int) is not supported in AdapterView
抱歉,我的回答有误。根据错误提示,`removeViewAt()` 方法不适用于 `AdapterView`,包括 `ListView` 在内。
正确的做法是,使用 `Adapter` 中的数据源,从数据源中移除指定位置的数据,然后调用 `notifyDataSetChanged()` 方法更新 `ListView` 的显示。
具体步骤如下:
1. 在 `Adapter` 中添加一个方法,用于从数据源中移除指定位置的数据:
```java
public void removeItem(int position) {
// 从数据源中移除指定位置的数据
// ...
// 通知适配器数据已经改变
notifyDataSetChanged();
}
```
2. 在 `ListView` 的 `OnItemClickListener` 中调用该方法:
```java
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// 从数据源中移除指定位置的数据
adapter.removeItem(position);
}
});
```
3. 如果需要,可以在 `removeItem()` 方法中添加一些逻辑,例如移除数据时同时更新数据库等。
希望这次回答能够帮到你,如有疑问可以继续提问。
阅读全文