【问题标题】:Android application (developed in Firemonkey Delphi) in Play Store is not compatible with your devicePlay Store 中的 Android 应用程序(在 Firemonkey Delphi 中开发)与您的设备不兼容
【发布时间】:2016-01-23 21:01:43
【问题描述】:

我使用 Firemonkey 框架使用 Object Pascal 开发了一个项目。我将我的应用程序发布到 Play 商店,然后我尝试从 Play 商店安装应用程序,但出现一条消息:“此应用程序与您的设备不兼容”

我尝试从 Play 商店将应用程序安装到手机(流行的三星和索尼手机)并从我的计算机手动安装 -APK 文件。当我想从 Play Store 安装具有相同 apk 文件和相同密钥库的相同应用程序时,所有文件、清单等都是相同的

当我手动安装我的 apk 文件时它可以工作。但仍然没有工作。

我更改了权限,未选中电话、相机、手机和其他权限。它只是使用读写存储、蓝牙(项目需要它)和互联网。

我的移动设备是 General Mobile 4G、One、Discovery 和三星 S4、Edge Plus、HTC One M7 和 LG G3。不兼容的平板电脑是Samsung SM-T562

【问题讨论】:

  • 我没有在 Play Store Developer Console 的支持设备中看到三星 SM-T562。但是我可以通过手动安装 APK(使用 USB 或 airdroid 等)来运行我的应用程序。如何在三星平板电脑上运行我的应用程序? (从Play商店下载)

标签: android firemonkey delphi-xe8 delphi


【解决方案1】:

我解决了!我正在尝试运行需要从 Play 商店安装的应用程序的平板电脑也需要 Access Coarse Location 和 Access Fine Location。这款平板电脑有自己的 GSM 卡用于上网,但它是数据模块,而不是电话。这就是为什么我的应用程序告诉我“应用程序不兼容”。

android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.INTERNET
android.permission.READ_CALENDAR
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_CALENDAR
android.permission.WRITE_EXTERNAL_STORAGE

我的应用程序现在需要这些权限并且可以正常工作!

【讨论】:

    【解决方案2】:

    对不起。我认为这是关于在英特尔设备上运行 FMX 应用程序。既然我已经写好了答案,那我还是留下吧。

    /本都

    --- 如何在基于 Intel 的设备上运行 Delphi FMX 应用程序 ---

    其实很简单。按照这些步骤操作,您的 Delphi FMX 应用程序将在大多数基于 Intel 的 Android 设备上正常运行。诀窍是几乎所有基于 Intel 的设备都有一个叫做 lib Houdini 的东西,它将 ARM 二进制文件转码为 Intel 二进制文件。当您在 Delphi 中创建应用程序时,您将获得一个包含 .so 文件的 APK。一个用于 ARM,一个用于 MIPS,最后一个 .so 文件用于 Intel。包含您的代码的唯一 .so 文件是 ARM .so 文件。其他是预编译的 .so 文件,将向最终用户显示设备不兼容。如果您从 APK 中省略 Intel .so 文件,您的应用程序将使用 lib Houdini 并且工作正常。那是如果英特尔设备安装了 lib Houdini。这取决于要安装的设备的制造商,而不是您。

    从 APK 文件中省略 Intel .so 文件的步骤:

    1. 转到此目录并将文件夹 x86 重命名为 x86.old

    C:\Program (x86)\Embarcadero\Studio\17.0\lib\android\debug

    1. 在此目录中执行相同操作

    C:\Program (x86)\Embarcadero\Studio\17.0\lib\android\release

    (XE8 将 17.0 更改为 16.0,XE7 更改为 15.0 等)

    下次构建 APK 时,您会收到警告说文件夹 x86 不存在,这很好,因为这正是我们想要的。现在尝试在您的英特尔设备上安装 APK,您会发现它可以正常工作。如果没有,那么您的设备没有安装 lib Houdini。

    唯一不起作用的是调试,那是因为 Delphi 不知道 lib Houdini。

    作为奖励,您的 APK 会变得更小。如果您愿意,您可以对 MIPS 文件夹执行相同的操作。如果设备上缺少 lib Houdini,您的应用将崩溃。

    记得在测试之前清理和构建你的项目。

    还有另一种方式;在 Delphi 中打开菜单 Project|Deployment 并取消选中行 $(BDS)\lib\android\debug\x86\ 或 $(BDS)\lib\android\deploy\x86\ 使用此方法,您必须确保执行这适用于您的所有项目。使用第一种方法,您再也不用担心了。

    我真的很想推荐这个模拟器; https://amiduos.com/ 只需 15 欧元。我将它与我的戴尔 P2314T 一起使用,多点触控效果非常好。这是一个基于 Intel 的仿真器,速度很快,并且安装了 lib Houdini。

    编码愉快! /本都

    【讨论】:

    • 这不仅仅是在英特尔设备上运行应用程序。它是关于从 Play 商店安装的。当我手动设置我的应用程序时,它可以工作。但是当我尝试从 Play 商店安装时它不起作用。实际上,它告诉我“这个应用程序与您的设备不兼容”。不过谢谢。仍然需要帮助..
    猜你喜欢
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    相关资源
    最近更新 更多