2014-02-13 42 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

相關問題