为什么Google Play商店不显示应用程序不可用的设备原因?

12

我是移动应用程序开发人员,同时在原生和Phone Gap上工作。

我已经在Phonegap中构建了一个应用程序,在设备上可以正常工作,但在某些选项卡中无法正常工作。

根据Google Play Store政策,我发现了这个问题。但为什么他们没有给出原因,是由于一些这种无效的代码还是由于一些特定的错误,Google不允许在某些特定设备上运行。

问题1:我有三星Galaxy Tab 2和Tab 3。根据不受支持的设备可用性列表,我的应用程序在两个平板电脑上都无法工作,当用户从平板电脑搜索时,他们也无法在Play商店中找到该应用程序。

在我的应用程序中,我已经设置了所有设备和平板电脑的要求如下,

 <?xml version="1.0" encoding="utf-8" ?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="my_pkg" android:hardwareAccelerated="true" android:versionCode="6" android:versionName="1.5" android:windowSoftInputMode="adjustPan">

    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />

    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="18" />

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.VIBRATE" />


    <application android:debuggable="false" android:hardwareAccelerated="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name">
        <receiver android:name="my_pkg.AlarmReceiver">
        </receiver>
        <receiver android:name="my_pkg.AlarmRestoreOnBoot">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>

        <activity android:name="my_pkg.MainActivity" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:theme="@android:style/Theme.Black.NoTitleBar" android:windowSoftInputMode="adjustPan">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

我现在卡在这里,不知道我的应用有什么问题,为什么谷歌商店不能在一些设备和平板电脑上安装我的应用。

一周前,不支持的设备和平板电脑总数为1550,现在为1153。

问题2 : 如何找出导致我无法在平板电脑上运行我的应用程序的错误,并解决它?

请帮助我解决这个问题,因为如果不知道原因,我怎么能解决它呢。


你的应用程序中使用了哪些功能和获取了哪些权限?请提供详细信息。 - Chintan Rathod
我不确定,但我可以想象PhoneGap使用了一些二进制文件,也许这些文件与那些设备不兼容(错误的架构)。 - rekire
请查看此答案:https://dev59.com/33jZa4cB1Zd3GeqPkv5d#19905748 - Avijit
4个回答

13

经过长时间的研究和开发,我终于找到了解决方案。实际上,我并不是这个答案的唯一创始人。我真的很感谢所有帮助我解决这个问题的人。

Divesh Salian的回答非常接近。我按照他的指示尝试了一下,同时也修改了我的config.xml文件,其中有一些不必要的<features></features>标签。

我在Samsung Developer论坛上提出了我的问题,并尝试在RTL中测试我的应用程序,但我无法在Web浏览器中登录,不知道为什么?

最后,我采用了其他关于<uses-feature></uses-feature>的替代方法。

 <uses-feature
        android:name="android.hardware.telephony"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.microphone"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.camera"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.camera.autofocus"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.camera.front"
        android:required="false" />
    <uses-feature
        android:name="android.software.input_methods"
        android:required="false" />

我使用了上述功能,但不打算基于此筛选应用程序,因此我已经为某些特定功能设置了 android:required="false"

如果您遇到这种问题,请注意以下事项:

我希望这些链接一定会解决您的问题。

再次感谢大家!!!


这个答案真棒!它解决了许多开发者的问题,也满足了他们的需求!!! - Harshal Kalavadiya

2

尝试在您的清单文件中添加此内容,之前对我有用过。

<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>

1
谢谢,给我的回答点个赞。 :) - Chintan Khetiya

1
为了解决问题,请创建一个三星开发者帐户并提交您的应用程序。他们的工程师将在不同的设备(手机和平板电脑)上测试该应用程序,并提供详细报告和测试期间遇到的任何问题的视频。我相信这将解决您的问题。

谢谢 +1,你的建议很有帮助 :) - Chintan Khetiya

0

尝试在Android模拟器上运行应用程序,并检查日志记录以查找错误。

其次,如果应用程序是使用HTML5和Javascript构建的,请尝试验证HTML标记并检查您的Javascript函数。

确保某些特定字段的值为空。在您的Javascript函数中添加控制台消息以验证应用程序所需的所有值。

例如:

function TestMe() {

var a1 = document.getElementById("textboxname").value;

console.log(a1); //this line is to show that you don't have a null value.

}

</script>

谢谢回复。我已经将控制台消息放在我的js函数中了。接下来,我已经在JSHint中验证了我的整个代码,并且最重要的是我的应用程序在同一平板电脑(三星tab2和tab3)上从系统中完美地工作,但如果用户从平板电脑打开,则无法在Playstore中显示。 - Chintan Khetiya
再次感谢。但是不需要添加新的回答,您可以更新旧的回答,所以请删除它,否则有人会给您负面评价。让我尝试一下您的答案。谢谢。 - Chintan Khetiya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接