无法在自定义的AOSP上从Google Play安装某些应用:该项目不可用。原因:9

皮管

尝试从Google Play安装某些应用程序时出现以下错误:

LibraryUtils.isAvailable: not available restriction=9 
DocUtils.getAvailabilityRestrictionResourceId: Item is not available. Reason: 9

我在x86硬件上运行AOSP的自定义版本(自定义的Android x86风格)。我已经进行了很多研究,并且网上已经有很多含糊的尝试/猜测来回答问题,但是我正在专门寻找“理由9”的含义。有了这些功能后,我希望我可以提出AOSP中的一个技巧来避免错误,因为当我加载相同的应用程序时,它们可以正常运行。这是我的爱好,因此我不必担心某些可能的意外副作用。

贾里德·鲁姆勒

如果您从设备中拉出Play Store APK,则可以对其进行反编译。我反编译了APK,并简单搜索了您的错误消息。错误消息可以在类中找到com.google.android.finsky.utils.DocUtils

$ grep -lr "Item is not available"
com/google/android/finsky/utils/DocUtils.java

方法如下:

public static int getAvailabilityRestrictionResourceId(Document document) {
    int restriction = document.getAvailabilityRestriction();
    int resourceId = R.string.availability_restriction_generic;
    switch (restriction) {
        case 2:
            resourceId = R.string.availability_restriction_country;
            break;
        case 8:
            resourceId = R.string.availability_restriction_not_in_group;
            break;
        case 9:
            if (document.getDocumentType() != 1) {
                resourceId = R.string.availability_restriction_hardware;
                break;
            }
            resourceId = R.string.availability_restriction_hardware_app;
            break;
        case 10:
            resourceId = R.string.availability_restriction_carrier;
            break;
        case 11:
            resourceId = R.string.availability_restriction_country_or_carrier;
            break;
        case 12:
            resourceId = R.string.availability_restriction_search_level;
            break;
        case 21:
            resourceId = R.string.availability_restriction_for_managed_account;
            break;
        case 22:
            resourceId = R.string.availability_restriction_missing_permission;
            break;
    }
    FinskyLog.d("Item is not available. Reason: " + restriction);
    return resourceId;
}

在您的情况下,响应的限制为9。这将得到两个字符串之一。如果我们使用ApkTool反编译APK的资源,则可以看到这两个字符串的值。

<string name="availability_restriction_hardware">"Your device isn't compatible with this item."</string>
<string name="availability_restriction_hardware_app">"Your device isn't compatible with this version."</string>

该方法getAvailabilityRestrictionResourceId(Document document)在以下类中调用:

$ grep -lr getAvailabilityRestrictionResourceId | grep -v DocUtils
com/google/android/finsky/activities/AppsPermissionsActivity.java
com/google/android/finsky/billing/lightpurchase/OfferResolutionActivity.java
com/google/android/finsky/detailspage/WarningMessageModule.java
com/google/android/finsky/layout/WarningMessageSection.java

如果您提供有关何时记录的信息,将很有帮助。


问题仍然模糊。通过在Google上进行搜索,有些人通过更改系统属性(通常在中/system/build.prop解决了类似的问题

可能不是您希望的答案,但我希望我的研究有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

自定义UserManager在OAuthAuthorizationServerProvider中不可用

如何使用我自己的自定义启动动画来编译AOSP项目?

无法更新Xcode(项目暂时不可用)?

在某些三星设备上,自定义同步不适用于Google帐户(com.google)

Facebook cocoapods'sharedApplication'不可用:在iOS(应用程序扩展)上不可用

如何在Android的Google(设备)本机应用程序上添加自定义按钮?

为什么我无法在iPad上验证自定义企业应用程序?

在我的应用程序上看不到自定义Google Map样式

自定义Google助手突然在设备上不可用,但在键入提示时有效

解决方案标签在“自定义”下的“设置”标签中不可用,无法上传示例html文件

使用Gif图像的自定义进度栏在某些设备上无法正常工作

无法在Google Colab中安装自定义软件包

安装模块不可用-无法识别为cmdlet的名称

无法在应用程序启动器上设置自定义图标

Android应用程序上的Google Analytics(分析)自定义事件跟踪

C#Web应用程序的项目属性页上的“调试”选项卡不可用

淘汰赛自定义bindingHandler无法在附加元素上应用Bindings

无法在Windows上的Bitnami Nginx堆栈安装中添加自定义应用

该应用在某些主要采用Android 4.1.1版的平板电脑设备上的Play商店中不可用

如何添加自定义“网页不可用”

似乎无法安装自定义libvirt

为什么新的Play-Services FaceDetector在某些设备上不可用?

无法安装 polybar,因为 python-xcbgen 不可用

无法安装部署在 Sonatype Nexus Pypi 存储库上的自定义库

由于以下原因无法实例化模块应用程序:错误:模块“应用程序”不可用

无法安装自定义扩展

Python点击项目,“Django在PYTHONPATH上不可用”错误

无法从自定义项目浏览器屏幕发布自定义

无法在我的自定义域上打开 Google App Engine 应用程序