Как устранить ошибку `E Qt JAVA: Surface 1 not found` при возобновлении работы с приложением Qt @ android через намерение? - PullRequest
0 голосов
/ 28 марта 2019

Я пишу приложение для просмотра некоторых пользовательских двоичных данных для Android, используя Qt5.12.

Я добавил фильтр намерений к AndroidManifest.xml, например, так:

<activity ...>
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <data android:mimeType="application/octet-stream" android:scheme="content" android:host="*" android:pathPattern=".*\\.xyz"/>
                <data android:mimeType="application/octet-stream" android:scheme="file" android:host="*" android:pathPattern=".*\\.xyz"/>
            </intent-filter>
 ...
</activity>

И это работает , если приложение было закрыто до : Android предлагает мое приложение, когда я пытаюсь открыть .xyz файлы из Telegram или файлового браузера.Он работает как шарм.

Однако, , если приложение уже открыто в фоновом режиме при попытке открыть .xyz -файл из Telegram, отображается новое пустое действие.Logcat говорит E Qt JAVA : Surface 1 not found! Когда я затем перезапускаю Telegram и пытаюсь открыть файл снова (как раньше), появляется черный экран.

Related: https://stackoverflow.com/a/32895588/4248972. Ответ даже предоставляет пример приложения.У меня точно такие же проблемы с этим примером приложения.

Эта проблема не ограничивается Telegram, но также возникает с WhatsApp и ES File Explorer . Samsung My Files никогда не предлагает мое приложение, но, похоже, это отдельная проблема

...