Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix bug causing crashes when sharing a downloaded file. #3046

Merged
merged 1 commit into from
Mar 8, 2020

Conversation

XiangRongLin
Copy link
Collaborator

Closes #3045
app-debug.zip

Tested it on my android 10 and 7.1 devices.
When sharing a video to vlc media player it doesn't start playing it, but this should be related to them.

Related stackoverflow: https://stackoverflow.com/questions/38200282/android-os-fileuriexposedexception-file-storage-emulated-0-test-txt-exposed

@TobiGr TobiGr added bug Issue is related to a bug downloader Issue is related to the downloader labels Feb 3, 2020
@ShareASmile ShareASmile mentioned this pull request Feb 23, 2020
1 task
Copy link
Member

@Stypox Stypox left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to the Stack Overflow thread you linked, this should be good to go, thank you! :-D
I tested on my Android 7.1 device and it worked, though I didn't have this bug earlier, so could you @eladkarako (from #3045) and @Suncatcher (from #3105) test this out?

@Stypox Stypox self-assigned this Mar 5, 2020
@Stypox
Copy link
Member

Stypox commented Mar 5, 2020

It seems like this bug is not reproducible anymore in v0.18.6. But I would merge this anyway, since it makes thigs consistent @TobiGr

@XiangRongLin
Copy link
Collaborator Author

XiangRongLin commented Mar 5, 2020

@Stypox I still crash in 18.6, but not in my debug apk. So this is still needed.
Probably had something to do with scoped storage of android 10.

Exception

  • User Action: ui error
  • Request: App crash, UI failure
  • Content Language: US
  • Service: none
  • Version: 0.18.6
  • OS: Linux Android 10 - 29
Crash log

android.os.FileUriExposedException: file:///storage/emulated/0/Music/NewPipe/Most%20Beautiful%20%26%20Emotional%20Shigatsu%20wa%20Kimi%20no%20Uso%20OST%20IMO.m4a exposed beyond app through ClipData.Item.getUri()
	at android.os.StrictMode.onFileUriExposed(StrictMode.java:2083)
	at android.net.Uri.checkFileUriExposed(Uri.java:2388)
	at android.content.ClipData.prepareToLeaveProcess(ClipData.java:977)
	at android.content.Intent.prepareToLeaveProcess(Intent.java:10759)
	at android.content.Intent.prepareToLeaveProcess(Intent.java:10765)
	at android.content.Intent.prepareToLeaveProcess(Intent.java:10744)
	at android.app.Instrumentation.execStartActivity(Instrumentation.java:1710)
	at android.app.Activity.startActivityForResult(Activity.java:5211)
	at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:676)
	at android.app.Activity.startActivityForResult(Activity.java:5169)
	at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:663)
	at android.app.Activity.startActivity(Activity.java:5540)
	at android.app.Activity.startActivity(Activity.java:5508)
	at us.shandian.giga.ui.adapter.MissionAdapter.shareFile(MissionAdapter.java:384)
	at us.shandian.giga.ui.adapter.MissionAdapter.handlePopupItem(MissionAdapter.java:661)
	at us.shandian.giga.ui.adapter.MissionAdapter.access$200(MissionAdapter.java:85)
	at us.shandian.giga.ui.adapter.MissionAdapter$ViewHolderItem.lambda$buildPopup$3$MissionAdapter$ViewHolderItem(MissionAdapter.java:934)
	at us.shandian.giga.ui.adapter.-$$Lambda$MissionAdapter$ViewHolderItem$RgJD8t6gH83XiFLVb3LGB9-h96A.onMenuItemClick(Unknown Source:2)
	at android.widget.PopupMenu$1.onMenuItemSelected(PopupMenu.java:108)
	at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:787)
	at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:151)
	at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:934)
	at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:924)
	at com.android.internal.view.menu.MenuPopup.onItemClick(MenuPopup.java:128)
	at android.widget.AdapterView.performItemClick(AdapterView.java:330)
	at android.widget.AbsListView.performItemClick(AbsListView.java:1190)
	at android.widget.AbsListView$PerformClick.run(AbsListView.java:3198)
	at android.widget.AbsListView$3.run(AbsListView.java:4116)
	at android.os.Handler.handleCallback(Handler.java:883)
	at android.os.Handler.dispatchMessage(Handler.java:100)
	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)


@Stypox
Copy link
Member

Stypox commented Mar 5, 2020

Ok, then this will be merged ;-)

@Stypox
Copy link
Member

Stypox commented Mar 6, 2020

@eladkarako have you tested app-debug.zip above?

@Stypox Stypox merged commit 029758f into TeamNewPipe:dev Mar 8, 2020
@Suncatcher
Copy link

So this fix not yet merged into main branch? I still have a crash on 0.18.6

Exception

  • User Action: ui error
  • Request: App crash, UI failure
  • Content Language: GB
  • Service: none
  • Version: 0.18.6
  • OS: Linux xiaomi/onc/onc:9/PKQ1.181021.001/V11.0.2.0.PFLMIXM:user/release-keys 9 - 28
Crash log

android.os.FileUriExposedException: file:///storage/emulated/0/Download/LITTLE%20BIG%20-%20GIVE%20ME%20YOUR%20MONEY%20(feat.%20TOMMY%20CASH).mp4 exposed beyond app through ClipData.Item.getUri()
	at android.os.StrictMode.onFileUriExposed(StrictMode.java:1978)
	at android.net.Uri.checkFileUriExposed(Uri.java:2371)
	at android.content.ClipData.prepareToLeaveProcess(ClipData.java:963)
	at android.content.Intent.prepareToLeaveProcess(Intent.java:10252)
	at android.content.Intent.prepareToLeaveProcess(Intent.java:10258)
	at android.content.Intent.prepareToLeaveProcess(Intent.java:10237)
	at android.app.Instrumentation.execStartActivity(Instrumentation.java:1669)
	at android.app.Activity.startActivityForResult(Activity.java:4651)
	at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:676)
	at android.app.Activity.startActivityForResult(Activity.java:4609)
	at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:663)
	at android.app.Activity.startActivity(Activity.java:4970)
	at android.app.Activity.startActivity(Activity.java:4938)
	at us.shandian.giga.ui.adapter.MissionAdapter.shareFile(MissionAdapter.java:384)
	at us.shandian.giga.ui.adapter.MissionAdapter.handlePopupItem(MissionAdapter.java:661)
	at us.shandian.giga.ui.adapter.MissionAdapter.access$200(MissionAdapter.java:85)
	at us.shandian.giga.ui.adapter.MissionAdapter$ViewHolderItem.lambda$buildPopup$3$MissionAdapter$ViewHolderItem(MissionAdapter.java:934)
	at us.shandian.giga.ui.adapter.-$$Lambda$MissionAdapter$ViewHolderItem$RgJD8t6gH83XiFLVb3LGB9-h96A.onMenuItemClick(Unknown Source:2)
	at android.widget.PopupMenu$1.onMenuItemSelected(PopupMenu.java:105)
	at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:776)
	at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:148)
	at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:923)
	at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:913)
	at com.android.internal.view.menu.MenuPopup.onItemClick(MenuPopup.java:128)
	at android.widget.AdapterView.performItemClick(AdapterView.java:318)
	at android.widget.AbsListView.performItemClick(AbsListView.java:1198)
	at android.widget.AbsListView$PerformClick.run(AbsListView.java:3178)
	at android.widget.AbsListView$3.run(AbsListView.java:4132)
	at android.os.Handler.handleCallback(Handler.java:873)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:201)
	at android.app.ActivityThread.main(ActivityThread.java:6810)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)


@Stypox
Copy link
Member

Stypox commented Mar 13, 2020

This will be in the next version @Suncatcher

@XiangRongLin XiangRongLin deleted the shareDownload branch March 14, 2020 17:17
This was referenced Mar 25, 2020
@Suncatcher
Copy link

Suncatcher commented Mar 31, 2020

Next version arrived, the bug is still there

photo_2020-03-31_11-35-08

Exception

  • User Action: ui error
  • Request: App crash, UI failure
  • Content Language: GB
  • Service: none
  • Version: 0.18.7
  • OS: Linux xiaomi/onc/onc:9/PKQ1.181021.001/V11.0.2.0.PFLMIXM:user/release-keys 9 - 28
Crash log

android.os.FileUriExposedException:
file:\/\/\/storage\/emulated\/0\/Download\/China%20disinfects%20entire%20cities%20to%20fight%20coronavirus%20outbreak%2C%20some%20twice%20a%20day.mp4
exposed beyond app through ClipData.Item.getUri()
android.os.StrictMode.onFileUriExposed(StrictMode.java:1978)
android.net.Uri.checkFileUriExposed(Uri.java:2371)
android.content.ClipData.prepareToLeaveProcess(ClipData.java:963)
android.content.Intent.prepareToLeaveProcess(Intent.java:10252)
android.content.Intent.prepareToLeaveProcess(Intent.java:10258)
android.content.Intent.prepareToLeaveProcess(Intent.java:10237)
android.app.Instrumentation.execStartActivity(Instrumentation.java:1669)
android.app.Activity.startActivityForResult(Activity.java:4651)
androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:676)
android.app.Activity.startActivityForResult(Activity.java:4609)
androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:663)
android.app.Activity.startActivity(Activity.java:4970)
android.app.Activity.startActivity(Activity.java:4938)
us.shandian.giga.ui.adapter.MissionAdapter.shareFile(MissionAdapter.java:384)
us.shandian.giga.ui.adapter.MissionAdapter.handlePopupItem(MissionAdapter.java:661)
us.shandian.giga.ui.adapter.MissionAdapter.access$200(MissionAdapter.java:85)
us.shandian.giga.ui.adapter.MissionAdapter$ViewHolderItem.lambda$buildPopup$3$MissionAdapter$ViewHolderItem(MissionAdapter.java:934)
us.shandian.giga.ui.adapter.-$$Lambda$MissionAdapter$ViewHolderItem$RgJD8t6gH83XiFLVb3LGB9-h96A.onMenuItemClick(Unknown
Source:2)
android.widget.PopupMenu$1.onMenuItemSelected(PopupMenu.java:105)
com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:776)
com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:148)
com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:923)
com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:913)
com.android.internal.view.menu.MenuPopup.onItemClick(MenuPopup.java:128)
android.widget.AdapterView.performItemClick(AdapterView.java:318)
android.widget.AbsListView.performItemClick(AbsListView.java:1198)
android.widget.AbsListView$PerformClick.run(AbsListView.java:3178)
android.widget.AbsListView$3.run(AbsListView.java:4132)
android.os.Handler.handleCallback(Handler.java:873)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:201)
android.app.ActivityThread.main(ActivityThread.java:6810)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)\n

@XiangRongLin
Copy link
Collaborator Author

XiangRongLin commented Mar 31, 2020

@Suncatcher You are still using 0.18.7, you need 0.19.0 or newer

@Suncatcher
Copy link

Suncatcher commented Mar 31, 2020

Just updated to 0.19.0 yesterday, but next version to 0.18.6 you wrote here should be 0.18.7.
It seems you skipped 0.18.8 and 0.18.9 jumped directly to the 0.19.0.

I will observe latest version and keep you posted about the bug.

@Stypox
Copy link
Member

Stypox commented Mar 31, 2020

@Suncatcher here is why that's the new version name, copied from GitHub's release page:

Tagging suggestions

It’s common practice to prefix your version names with the letter v. Some good tag names might be v1.0 or v2.3.4.
If the tag isn’t meant for production use, add a pre-release version after the version name. Some good pre-release versions might be v0.2-alpha or v5.9-beta.3.

Semantic versioning

If you’re new to releasing software, we highly recommend reading about semantic versioning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Issue is related to a bug downloader Issue is related to the downloader
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Share a download from NewPipe creates an error. v18.2
4 participants