2014-02-13 41 views
2

我试图在没有任何运气的情况下在stackoverflow和其他服务上找到2天的答案... 我已经向Google Play发布了应用程序。它在那里,但它与大多数设备不兼容。 我使用Eclipse和TestFlight在Nexus 7上运行测试来安装它,并且没有任何问题。所以我几乎肯定它与AndroidManifest有关。Android应用程序在Google Play上 - 与所有设备不兼容

这里是AAPT转储徽章结果:

Application.apk 

package: name='com.test.application' 

versionCode='1' 

versionName='1.0' 

sdkVersion:'11' 

targetSdkVersion:'19' 

uses-permission:'android.permission.WRITE_EXTERNAL_STORAGE' 

uses-permission:'android.permission.ACCESS_NETWORK_STATE' 

uses-permission:'android.permission.INTERNET' 

application-label:'Application' 

application-label-da:'Application' 

application-label-el:'Application' 

application-icon-160:'res/drawable-mdpi/ic_launcher.png' 

application-icon-240:'res/drawable-hdpi/ic_launcher.png' 

application-icon-320:'res/drawable-xhdpi/ic_launcher.png' 

application-icon-480:'res/drawable-xxhdpi/ic_launcher.png' 

application: label='Application' icon='res/drawable-mdpi/ic_launcher.png' 

application-debuggable 

launchable-activity: name='com.test.application.activity.Launcher' 

label='Application' icon='' 

uses-permission:'android.permission.READ_EXTERNAL_STORAGE' 

uses-implied-permission:'android.permission.READ_EXTERNAL_STORAGE','requested 

WRITE_EXTERNAL_STORAGE' 

uses-feature:'android.hardware.touchscreen' 

uses-implied-feature:'android.hardware.touchscreen','assumed you require a touch screen 

unless explicitly made optional' 

uses-feature:'android.hardware.screen.landscape' 

uses-implied-feature:'android.hardware.screen.landscape','one or more activities have 
specified a landscape orientation' 

main 

other-activities 

supports-screens: 'small' 'normal' 'large' 'xlarge' 

supports-any-density: 'true' 

locales: '--_--' 'da' 'el' 

densities: '160' '240' '320' '480' 

这里是清单:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.test.application" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="11" 
     android:targetSdkVersion="19" /> 

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.INTERNET"/> 

    <application 
     android:allowBackup="true" 
     android:hardwareAccelerated="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" 
     android:debuggable="false" 
     android:name=".ApplicationApplication"> 
     <activity 
      android:name="com.test.application.activity.Launcher" 
      android:label="@string/app_name" 
      android:screenOrientation="sensorLandscape" 
      android:configChanges="orientation|screenSize|keyboardHidden|locale"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.test.application.activity.SomeActivity" 
      android:label="@string/app_name" 
      android:screenOrientation="sensorLandscape" 
      android:windowSoftInputMode="adjustPan" 
      android:configChanges="orientation|screenSize|keyboardHidden|locale"> 
     </activity> 
     <activity 
      android:name="com.test.application.activity.AnotherActivity" 
      android:label="@string/app_name" 
      android:screenOrientation="sensorLandscape" 
      android:windowSoftInputMode="adjustPan" 
      android:configChanges="orientation|screenSize|keyboardHidden|locale"> 
     </activity> 
    </application> 

</manifest> 

签署的APK与AndroidStudio建。 这个“应用程序调试”似乎令人怀疑。 你们有没有任何线索为什么在地球上它与Nexus 7不兼容?

+0

如果您正在使用Android Studio,请尝试在发布buildType下的build.gradle文件中添加'debuggable false'。 – pyus13

回答

0

好的,毕竟事实证明,根本没有问题。 负责出版过程设置国家限制的人。 这就是为什么应用程序与特定国家/地区的所有设备不兼容的原因。

3

这是说,应用程序不兼容。

它显示设备上的错误不仅仅是因为minSDKversion,而且谷歌播放关注您对清单文件的权限。

一样,如果你输入的是这样的:

<uses-permission android:name="android.permission.RECEIVE_SMS" /> 
<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 

您的选项卡将不会支持它。

因此不是使用uses-permission而是使用<uses-feature>。并在Java文件检查它,你需要的硬件是否可用。

对于<uses-feature>看到下面的链接:

http://developer.android.com/guide/topics/manifest/uses-feature-element.html#features-reference

万一如果你使用这个,你需要更新你的清单是这样的:

<uses-permission android:name="android.permission.CAMERA"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.SEND_SMS"/> 
<uses-permission android:name="android.permission.READ_CONTACTS"/> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

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

你必须把<uses-permission>沿与其要求的<uses-feature>

和一个小窍门,如果它会帮助你:

  • 你必须记住约android:minSdkVersion以及使其兼容 较低版本的设备。正如你必须设置它:android:minSdkVersion="11"
+0

很好的解释.. @Avijit。 – InnocentKiller

+0

谢谢@InnocentKiller – Avijit

+0

好的,但正如你可以在这个特定的清单中看到的,没有什么可以影响平板电脑的不兼容性。您是否检查过附加清单和aapt转储标记结果? – narath

0

在清单集android:minSdkVersion="11" - 这意味着Android 3.0以下的所有设备将不支持。或者歪曲上述版本3.0设备的问题仍然存在于列表中不受支持?

+0

即使使用Android 4.X,所有设备都有问题 – narath

相关问题