flet icon indicating copy to clipboard operation
flet copied to clipboard

"Unknown control: clipboard" on Android.

Open AyberkAtalay0 opened this issue 1 year ago • 4 comments

Description: I converted a code I copied from the website into an .apk file using the "flet build apk" command and transferred it to my phone. When I run the application, I see the error mentioned below. I can run the application on desktop.

Requirements:

flet==0.21.1

Operating systems: Process on Windows 11, test on Android 13

Code:

import flet as ft

async def main(page: ft.Page):
    page.horizontal_alignment = ft.CrossAxisAlignment.CENTER
    page.appbar = ft.AppBar(title=ft.Text("Audio Recorder"), center_title=True)

    path = "test-audio-file.wav"

    async def handle_start_recording(e):
        print(f"StartRecording: {path}")
        await audio_rec.start_recording_async(path)

    async def handle_stop_recording(e):
        output_path = await audio_rec.stop_recording_async()
        print(f"StopRecording: {output_path}")
        if page.web and output_path is not None:
            await page.launch_url_async(output_path)

    async def handle_list_devices(e):
        devices = await audio_rec.get_input_devices_async()
        print(devices)

    async def handle_has_permission(e):
        try:
            print(f"HasPermission: {await audio_rec.has_permission_async()}")
        except Exception as e:
            print(e)

    async def handle_pause(e):
        print(f"isRecording: {await audio_rec.is_recording_async()}")
        if await audio_rec.is_recording_async():
            await audio_rec.pause_recording_async()

    async def handle_resume(e):
        print(f"isPaused: {await audio_rec.is_paused_async()}")
        if await audio_rec.is_paused_async():
            await audio_rec.resume_recording_async()

    async def handle_audio_encoding_test(e):
        for i in list(ft.AudioEncoder):
            print(f"{i}: {await audio_rec.is_supported_encoder_async(i)}")

    async def handle_state_change(e):
        print(f"State Changed: {e.data}")

    audio_rec = ft.AudioRecorder(
        audio_encoder=ft.AudioEncoder.WAV,
        on_state_changed=handle_state_change,
    )
    page.overlay.append(audio_rec)
    await page.update_async()

    await page.add_async(
        ft.ElevatedButton("Start Audio Recorder", on_click=handle_start_recording),
        ft.ElevatedButton("Stop Audio Recorder", on_click=handle_stop_recording),
        ft.ElevatedButton("List Devices", on_click=handle_list_devices),
        ft.ElevatedButton("Pause Recording", on_click=handle_pause),
        ft.ElevatedButton("Resume Recording", on_click=handle_resume),
        ft.ElevatedButton("Test AudioEncodings", on_click=handle_audio_encoding_test),
        ft.ElevatedButton("Has Permission", on_click=handle_has_permission),
    )


ft.app(target=main)

Results:

"Unknown control: clipboard"

error1

AyberkAtalay0 avatar Mar 17 '24 16:03 AyberkAtalay0

Does this happen with a simple application too (Hello World) ? Or just with the above specific code..?

ndonkoHenri avatar Mar 17 '24 21:03 ndonkoHenri

Does this happen with a simple application too (Hello World) ? Or just with the above specific code..?

All applications give the same error with the "flet build apk" command.

AyberkAtalay0 avatar Mar 18 '24 15:03 AyberkAtalay0

Da el mismo error con un simple hello world

zLEDT avatar Mar 22 '24 03:03 zLEDT

use ft.SafeArea() on page.add(ft.SafeArea(content=ft.Column(([,,,,,,]))

marwanazd avatar Mar 25 '24 01:03 marwanazd

use ft.SafeArea() on page.add(ft.SafeArea(content=ft.Column(([,,,,,,]))

Not working.

AyberkAtalay0 avatar Mar 28 '24 05:03 AyberkAtalay0

I cannot reproduce this issue. In my video, you can see that the apk works as expected without showing that error message: https://www.youtube.com/watch?v=IcT_QrLWi10

I suggest you move to the latest Flet version and retry.

ndonkoHenri avatar Mar 28 '24 07:03 ndonkoHenri