Flutter — клавиатура не отображается на устройствах Android 12

#android #flutter #keyboard

Вопрос:

Клавиатура не отображается на устройствах Android 12, появляется надпись, указывающая, что клавиатура включена, но ничего не отображается. Он работает должным образом для более старых версий Android.

Клавиатура отлично работает в других приложениях, а также отлично работает с симулятором, имеющим версию Android, отличную от Android 12. Пробовал с физическим устройством, также Pixel с Android 12 сталкивается с той же проблемой.

код доктора flutter —

 flutter doctor -v
[✓] Flutter (Channel stable, 2.2.3, on macOS 11.4 20F71 darwin-x64, locale en-IN)
    • Flutter version 2.2.3 at /Users/uable/Downloads/flutter
    • Framework revision f4abaa0735 (4 months ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/uable/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/uable/Library/Android/sdk
    • ANDROID_SDK_ROOT = /Users/uable/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[!] Xcode - develop for iOS and macOS
    ✗ Xcode installation is incomplete; a full installation is necessary for iOS development.
      Download at: https://developer.apple.com/xcode/download/
      Or install Xcode via the App Store.
      Once installed, run:
        sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
        sudo xcodebuild -runFirstLaunch
    • CocoaPods version 1.10.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] Connected device (2 available)
    • sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64    • Android 12 (API 31) (emulator)
    • Chrome (web)                 • chrome        • web-javascript • Google Chrome 95.0.4638.54

! Doctor found issues in 1 category.
 

Ниже приведено изображение простого текстового поля с включенной клавиатурой, также пытались изменить все свойства текстового поля. Это существующее приложение, поэтому я попытался протестировать существующие текстовые поля даже в тех, которые показывают одинаковое поведение.

настройки Android gradle

     minSdkVersion 24
    targetSdkVersion 30
 

введите описание изображения здесь

Комментарии:

1. Привет, Шаран, ты исправил эту ошибку? Я сталкиваюсь с той же проблемой!

2. @Abdel да, в файле манифеста Android вы должны установить android: hardwareAccelerated =»true»

3. У меня такая же проблема, просто попытался добавить android: hardwareAccelerated=»true», но, похоже, это ничего не изменило. В моем случае это веб-просмотр Flutter, который не запускает отображение клавиатуры.

4. Сталкиваюсь с теми же проблемами, что и @theLastNightTrain: флаг android:hardwareAccelerated="true" установлен правильно, и мой webview не показывает клавиатуру … (правда, только на Android 12, на физическом устройстве …)

5. Итак, на физическом устройстве Android 12, в webview, что исправило это для меня, так это использовать (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView(); . По сути, перевод webview в режим гибридной композиции (см. pub.dev/packages/webview_flutter )

Ответ №1:

введите описание изображения здесь Я думаю, что это ошибка, потому что эта ошибка симулятора с системным интерфейсом, вы можете стереть данные симулятора, а затем запустить снова

Ответ №2:

Перейдите в Android simulator -> tools -> AVD Manager -> Выберите устройство, на котором вы работаете, wipedata и запустите его снова.

Если это не работает, выберите другое устройство и попробуйте его.

Не уверен, это может быть проблема simulator .

Комментарии:

1. Клавиатура отлично работает в других приложениях, а также отлично работает с симулятором, имеющим версию Android, отличную от Android 12. Пробовал с физическим устройством Pixel также с Android 12, столкнувшимся с той же проблемой.

2. @SharanSingh Вы нашли решение?

3. @SharanSingh есть какие-либо обновления? я столкнулся с той же проблемой

Ответ №3:

в качестве официального документа webview flutter помещен

 if (Platform.isAndroid) WebView.platform = AndroidWebView();
 

в вашем Main.dart

введите описание изображения здесь