Screenshot Permission Error in Kodular: WRITE_EXTERNAL_STORAGE Denied

Good morning everyone,

I’m building a simple app for android 15 and up, that takes a screenshot when I press the Back button. It’s just meant to test the Screenshot extension, but it’s not working and throws the following error:
[Error 908: WRITE_EXTERNAL_STORAGE permission is denied]

Here’s my code block:

It should simply capture a screenshot. I’ve tried everything I could find on the Kodular community forum, but nothing works. I read somewhere that the AndroidManifest.xml file needs to be modified—but I’d really prefer not to edit anything outside Kodular’s visual interface.

I’ve also tested several recommended extensions that are supposed to automatically add the required permissions to the manifest, yet none of them solved the issue.

Does anyone have a straightforward solution that works without having to manually modify files outside Kodular?

Thanks in advance!

:waving_hand: @Luky_Lillo welcome to Kodular community

You cannot use write external storage anymore, thats why your getting error,

For screenshots this maybe the help

I just tried it, but when I use it, the app crashes with this error:

Argument #2 (com.google.appinventor.components.runtime.Maker…) to ‘com.vic.componenttoimage.ComponentToImage.SaveComponentAsImage(com.google.appinventor.components.runtime.AndroidViewComponent,java.lang.String)’ has wrong type (com.google.appinventor.components.runtime.MakeroidChromeCustomTabs) (expected: com.google.appinventor.components.runtime.AndroidViewComponent)
Note: You will not see another error reported for 5 seconds.

The block is this:

Sorry I didn’t explained how it works, apparently you supposed to attach it to an image component, whether you set it to visible false

Simple right?:smiling_face::smiling_face::smiling_face::smiling_face:

It’s will be saved to apps directory

And also don’t add image format as you did, png

It still doesn’t work:

I expected a screenshot of the screen shown in the Custom Tab, but the saved screenshot is black.

This is what I expected:

And this is what I actually got:

So I assume the extension doesn’t work properly.

Please correct me if I’m wrong. My goal is to take a screenshot of the screen displayed inside the Chrome Custom Tab. Or eventually a webview.

Below is my block:

How is that possible?

Chrome is another app itself, so how could you afford that?

Android version?

Thank you so much. I fixed it as you suggested. I did it like this:

I take the screenshot (using the Back Pressed event) on the WebView (CustomWebView), and the screenshot (in Companion) is saved to
0/Android/data/io.makeroid.companion/files
and displays correctly.

One last thing, then I’ll let you go: what if I wanted to save it to the /Download/Screenshot folder instead?

As you have noticed, the Screenshot component requires the WRITE_EXTERNAL_STORAGE permission, even though it has been deprecated in Android 15, so i moved the topic to Feedback > Bugs and added to the BugsTracker

Since Android 11.

1 Like

Remember the community used to mark as a solution to what someone shared/helped not how you used it.

1 Like

This is fixed and scheduled to be released in the next update.

Sample app working in Android 10+: Test (23).apk (5.5 MB)

These are the only blocks in that example:

For Android 10 or below, it still requires the manual permission request:
Test (24).apk (5.5 MB)

The blocks for that example:

2 Likes

This bug is fixed as of 2025.10.6: Kodular Creator 2025.10 - #12

1 Like

Done. Thank you.