我已向play.google.com上传了一个新应用程序:
https://play.google.com/store/apps/details?id=development.nk.anguide
问题是我无法在平板电脑中安装此应用程序。 在优化提示中,有以下消息: “您的APK需要符合以下条件: 平板电脑通常提供任何所需的硬件功能。“
这是我的清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="development.nk.anguide"
android:versionCode="2"
android:versionName="1.01" >
<supports-screens android:resizeable="true"
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<permission
android:name="development.nk.anguide.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="false" />
<uses-permission android:name="development.nk.anguide.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- ΝΟΜΙΖΩ ΔΕΝ ΧΡΕΙΑΖΟΝΤΑΙ ΤΑ 2 ΠΑΡΑΚΑΤΩ... -->
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application
android:allowBackup="true"
android:icon="@drawable/icon_144_144"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="development.nk.anguide.xxxxxxxx"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".DetailForm"></activity>
<activity android:name=".MapActivity"></activity>
<activity android:name=".MapAllActivity"></activity>
<activity android:name=".EditPreferences"></activity>
<activity android:name=".Categories"></activity>
<activity android:name=".SubCategory"></activity>
<activity android:name=".CategoriesExpandableList"></activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value=".......my API key .............." />
</application>
很奇怪的想法是我可以通过USB线将我的应用程序安装到我的平板电脑中并从日食中正常运行...
那么我应该更改什么才能从平板电脑下载?
提前感谢您阅读我的问题..
答案 0 :(得分:7)
我认为问题在于:
<!-- ΝΟΜΙΖΩ ΔΕΝ ΧΡΕΙΑΖΟΝΤΑΙ ΤΑ 2 ΠΑΡΑΚΑΤΩ... -->
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
请改为尝试:
<uses-feature android:name="android.hardware.telephony" android:required="false" />
此问题已经提出,请参阅this post了解详情。此外,如果你的目标是平板电脑和手机,你不需要在你的代码上写这个,恕我直言:
<supports-screens android:resizeable="true"
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />
我不会在我的应用程序中使用它。
答案 1 :(得分:1)
只要您正确定义应用程序的目标SDK以使用它们,您就可以使用eclipse中的USB电缆将任何应用程序安装到任何设备(智能手机/平板电脑)中。
虽然商店不会识别它,除非您使用某种“过滤器”。
要解决您的问题,请将android:requiresSmallestWidthDp
添加到supports-screens
标记。
<supports-screens android:resizeable="true"
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"
android:requiresSmallestWidthDp="600" />
600(dp单位)表示所有设备必须至少具有600dp的最小可用宽度区域。这与7英寸或更高的屏幕相同。或者你可以720(dp单位)用于10英寸屏幕的最小宽屏幕。
请查看here以获取有关android:requiresSmallestWithDp