在 Android PIE 上,我有一个在线性布局中包含多个 Edittext 视图的 Activity,并使用 SOFT_INPUT_ADJUST_PAN。当我在 Edittext 上使用软键盘打字时,不会显示文本。
如果我在靠近屏幕顶部的 Edittext 上键入文本,在显示软键盘时不需要 PAN 来保持 Edittext 可见,则一切正常。
如果我在靠近屏幕底部的 Edittext 上键入文本,其中 PAN 用于在显示软键盘时使 Edittext 保持可见,而我在键入时,键入的文本不会显示在 Edittext 上,但是一旦我按 Next 或 Done 隐藏键盘,我输入的文本会出现。
我没有关于活动的特殊代码,即使我删除了代码中对 EditTexts 的任何引用,问题仍然存在。这只发生在 Android Pie 设备上。
试过用针对 SDK27 的 SDK27 编译和用针对 SDK28 的 SDK28 编译,结果是一样的。
更新:
我发现是什么让它不起作用。我在应用程序级别的清单中有 android:hardwareAccelerated="false" 。如果我将其设置为 true,则它可以工作。
有没有办法让它在没有硬件加速的情况下工作?
我有一个应用程序使用带有本机库的库,现在在 Android 11 中由于 fdsan 而崩溃。
我已经联系了库提供商,但他们不会提供解决此问题的新版本库,因此我需要能够以某种方式禁用 fdsan。
我认为解决方案是当我使用 Android 11 或更高版本时调用:
if(android_get_device_api_level()>=30)
android_fdsan_set_error_level(ANDROID_FDSAN_ERROR_LEVEL_WARN_ONCE);
Run Code Online (Sandbox Code Playgroud)
但由于错误,我无法编译:
使用未声明的标识符“android_fdsan_set_error_level”
因为这只是在 Android 10 (API 29) 中添加的
所以我的问题是如何在我的项目中调用这个函数?我正在为此创建一个特定的 cpp 文件和一个特定的库,所以我需要一些如何让这个库说明它仅适用于 Android 10 或更高版本。cpp 文件或 Android.mk 文件中是否有一些定义,我可以使用这些定义来编译这个特定的库,仅当我的应用程序启动时,我才会从 Android 11 或更高版本中的 Java 调用该库?