k3b / APhotoManager

Manage local photos on Android: gallery, geotag with photomap, privacy, tags, find, sort, view, copy, send, ... .
GNU General Public License v3.0
224 stars 57 forks source link

Met with ActivityNotFoundException and crashed #205

Open Kobayashi-996 opened 1 year ago

Kobayashi-996 commented 1 year ago

Describe the bug Accidentally met with an ActivityNotFoundException and the app crashed.

To Reproduce Tried to reproduce but didn't success. Hope the logcat ouput could help.

Smartphone (please complete the following information):

Logcat 01-01 06:16:52.161 18321 18321 E AndroidRuntime: FATAL EXCEPTION: main 01-01 06:16:52.161 18321 18321 E AndroidRuntime: Process: de.k3b.android.androFotoFinder.debug, PID: 18321 01-01 06:16:52.161 18321 18321 E AndroidRuntime: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.EDIT dat=file:///storage/emulated/0/Android/data/com.google.android.apps.maps/testdata/performance.album typ=text/plain (has extras) } 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2007) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.app.Instrumentation.execStartActivity(Instrumentation.java:1673) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.app.Activity.startActivityForResult(Activity.java:4586) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at de.k3b.android.widget.ActivityWithCallContext.startActivityForResultImpl(ActivityWithCallContext.java:146) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at de.k3b.android.widget.ActivityWithCallContext.startActivity(ActivityWithCallContext.java:136) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at de.k3b.android.androFotoFinder.directory.DirectoryPickerFragment.onEdit(DirectoryPickerFragment.java:515) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at de.k3b.android.androFotoFinder.directory.DirectoryPickerFragment.onPopUpClick(DirectoryPickerFragment.java:431) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at de.k3b.android.androFotoFinder.directory.DirectoryPickerFragment$10.onMenuItemClick(DirectoryPickerFragment.java:407) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.widget.PopupMenu$1.onMenuItemSelected(PopupMenu.java:105) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:776) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:148) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:923) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:913) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at com.android.internal.view.menu.MenuPopup.onItemClick(MenuPopup.java:128) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.widget.AdapterView.performItemClick(AdapterView.java:318) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.widget.AbsListView.performItemClick(AbsListView.java:1159) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.widget.AbsListView$PerformClick.run(AbsListView.java:3136) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.widget.AbsListView.onTouchUp(AbsListView.java:4064) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.widget.AbsListView.onTouchEvent(AbsListView.java:3822) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.widget.DropDownListView.onTouchEvent(DropDownListView.java:116) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.View.dispatchTouchEvent(View.java:12513) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3024) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2705) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.widget.PopupWindow$PopupDecorView.dispatchTouchEvent(PopupWindow.java:2407) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.View.dispatchPointerEvent(View.java:12752) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5106) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4909) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4479) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4445) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4585) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4453) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4642) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4479) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4445) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4453) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7092) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7061) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7022) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7195) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:186) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.os.MessageQueue.nativePollOnce(Native Method) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.os.MessageQueue.next(MessageQueue.java:326) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.os.Looper.loop(Looper.java:160) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6669) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 01-01 06:16:52.161 18321 18321 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

k3b commented 1 year ago

ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.EDIT dat=

file:///storage/emulated/0/Android/data/com.google.android.apps.maps/testdata/performance.album

typ=text/plain

this looks like a permission problem: The directory com.google.android.apps.maps is probably a private directory where other non root apps like apm are not allowed to read.

Kobayashi-996 commented 1 year ago

@k3b Oh, thanks for your quick reply! Indeed, that makes sense. Maybe some logic could be added to avoid this directly crashing?