我的应用程序未显示在Nexus 7上。 播放商店控制台在设备列表中显示Nexus 7:
Unsupported devices due to your manifest settings:
Nexus 7(grouper)"
我的清单看起来像这样:
...
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="14">
</uses-sdk>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<compatible-screens>
<screen android:screenSize="normal" android:screenDensity="mdpi"/>
<screen android:screenSize="normal" android:screenDensity="hdpi"/>
<screen android:screenSize="normal" android:screenDensity="xhdpi"/>
<screen android:screenSize="large" android:screenDensity="ldpi"/>
<screen android:screenSize="large" android:screenDensity="mdpi"/>
<screen android:screenSize="large" android:screenDensity="hdpi"/>
<screen android:screenSize="large" android:screenDensity="xhdpi"/>
<screen android:screenSize="xlarge" android:screenDensity="ldpi"/>
<screen android:screenSize="xlarge" android:screenDensity="mdpi"/>
<screen android:screenSize="xlarge" android:screenDensity="hdpi"/>
<screen android:screenSize="xlarge" android:screenDensity="xhdpi"/>
</compatible-screens>
...
我不需要相机,这似乎是通常不兼容问题的情况。
我没有使用supports-screens
条目(我想要排除所有小屏幕设备,以及ldpi普通设备,这不可能使用支持屏幕条目AFAIK)。
任何想法可能是什么问题?
一个有趣的细节可能是nexus 7报告有DENSITY_TV(213dpi)。但是,“tv”不是android:screenDensity标签的可能值。
编辑: 开发者控制台报告以下所需权限:
Permissions:
android.permission.INTERNET,
android.permission.ACCESS_NETWORK_STATE,
android.permission.WAKE_LOCK,
android.permission.READ_PHONE_STATE,
android.permission.WRITE_EXTERNAL_STORAGE,
com.android.vending.BILLING,
android.permission.ACCESS_WIFI_STATE
Features:
android.hardware.screen.landscape,
android.hardware.touchscreen,
android.hardware.wifi
答案 0 :(得分:7)
确实如此,您无法将"tvdpi"
添加到清单中。但是有一种解决方法,如果你输入"213"
代替,正如你所指出的那样是密度的dpi
值,eclipse会对它感到满意并且你的应用程序也会显示出来nexus 7设备。
答案 1 :(得分:4)
阅读您的权限列表,READ_PHONE_STATE
可能会导致Google Play暗示您的应用需要android.hardware.telephony
功能,这在Nexus 7中不可用。
尝试将此添加到您的清单中以解决此问题:
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
您可以阅读有关"Permissions that Imply Feature Requirements" here的更多信息。
答案 2 :(得分:3)
有一次,我上传了我的应用。它也不适用于nexus 7。在我的情况下,它是因为我在我的清单文件
中引起的<uses-permission android:name="android.permission.CALL_PHONE" />
我有上面一行,因为我可以在一个应用程序屏幕中调用带有Intent的电话号码。这个功能很小,对应用程序来说并不重要。这就是说我希望应用程序在没有电话功能的设备中运行。
我在Android开发人员博客中找到了这篇文章Five Steps to Futre Hardware Hapinness,它解释了这个问题。
将下一行添加到清单文件,生成新的APK并将其上传到Play商店,使我的应用程序与另一组设备(包括nexus 7)兼容。
<uses-feature android:name="android.hardware.telephony" android:required="false"/>