2013-05-28 27 views
2

兼容我有一個Android應用程序已經在谷歌Play商店現在兩年左右(https://play.google.com/store/apps/details?id=dkh.idex)與API級別7+並支持所有屏幕尺寸。它使用一些權限(ACCESS_NETWORK_STATE,INTERNET,READ_EXTERNAL_STORAGE,WRITE_EXTERNAL_STORAGE)。Android應用程序突然無法與設備

自2013年4月22日我上傳了我的所有用戶設備運行良好的一個版本(版本號44)。一個月後,2013年5月22日,我上傳了一個新版本,並做了一些小修改(版本代碼爲45),但最近幾天(從5月27日開始),很多用戶向我抱怨說他們的設備不再兼容我的應用程序的最新版本。這些用戶一直在使用該應用程序,但在長達兩年的時間內沒有出現此類問題。某些設備仍然可以升級到最新版本,但其他設備在嘗試升級時會收到其設備不兼容的消息(請注意,它們已具有舊版應用程序)。我能夠通過ADB(USB)直接在設備上安裝應用程序,該設備表示它在Google Play商店(Samsung Galaxy Tab 10.1舊版本)中不兼容。

我通過我的文件變更集觀看,我已經在AndroidManifest.xml兩個版本之間做出的唯一改變是更新版本號和版本號。我沒有更改任何使用權限,支持的屏幕尺寸,支持的API級別,甚至添加了任何活動或更改的調試設置。

這裏是我的AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="dkh.idex" 
    android:versionName="3.2.11" android:versionCode="45"> 

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

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

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<application android:name="dkh.classes.MyApp" android:label="@string/app_name" android:debuggable="false" android:icon="@drawable/ic_launcher_idex_v3"> 
    <activity android:name=".idex" 
       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=".Form2" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait" 
     android:configChanges="orientation"> 

    </activity> 
    <activity android:name=".InfoForm" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait"> 

    </activity> 
    <activity android:name=".INSTAForm" 
     android:label="@string/app_name" 
     android:launchMode="standard" 
     android:screenOrientation="portrait"> 
    </activity> 
    <activity android:name=".HygieneForm" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait"> 

    </activity> 
    <activity android:name=".CommentForm" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait"> 

    </activity> 
    <activity android:name=".AddReqChooseForm" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait"> 

    </activity> 
    <activity android:name=".AddReqForm" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait"> 

    </activity> 
    <activity android:name=".FTPForm" android:label="@string/app_name" android:screenOrientation="portrait"></activity> 
    <activity android:name=".SyncForm" android:label="@string/app_name" android:screenOrientation="portrait"></activity> 
    <activity android:name=".DrawTestForm" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation"></activity> 
    <activity android:name="StatisticsForm" android:screenOrientation="portrait" android:label="@string/app_name"></activity> 
    <activity android:name="PhotoGallery" android:screenOrientation="portrait" android:label="@string/app_name"></activity> 
    <activity android:name="PhotoView" android:label="@string/app_name"></activity> 
    <activity android:name="ParametersForm" android:label="@string/app_name" android:screenOrientation="portrait" android:windowSoftInputMode="adjustPan"></activity> 
    <activity android:name="PropertiesForm" android:label="@string/app_name" android:screenOrientation="portrait" android:windowSoftInputMode="adjustPan"></activity> 
    <activity android:screenOrientation="portrait" android:name="InspectionChangeForm" android:label="@string/app_name"></activity> 
    <activity android:name="AdvancedSyncWindow" android:label="@string/app_name" android:screenOrientation="portrait"></activity> 
    <service android:process=":image_process" android:name=".ImageUploadService"></service> 
    <activity android:name=".HelpWindow" android:label="@string/app_name"></activity> 
    <activity android:name="RecoverView"></activity> 
    <activity android:name="InspectionCommentForm" ></activity> 

</application> 
</manifest> ` 

在我的代碼我增加了一些文字到我的資源文件,並取得了一定的標準細微的變化休息,但沒有什麼是不能在應用程序已經以某種形式。

我真的被這個問題困惑。有誰知道可能是什麼原因或知道谷歌是否改變了可能對此產生影響的任何事情?請詢問您是否需要更多信息。

+0

這可以幫忙嗎? http://stackoverflow.com/questions/8924752/android-application-no-more-compatible-on-market – Rick77

+0

我無法解釋爲什麼這個問題只是最近纔出現,但是你缺少你的android:xlargeScreens 'supports-screens'元素,這可能是相關的。 – CloudyMusic

+0

@cloudymusic我認爲'android:anyDensity'會照顧所有丟失的屏幕尺寸?你可能會對某件事情有所瞭解,但在那之前它並不是一個問題,這很奇怪。 – Daniel

回答

0

我解決了它。

的問題是,谷歌Play將篩選基於設備屏幕尺寸的應用,因爲xlargeScreens沒有在API 7(版本2.1)支持的過濾器將被設置爲false,這些設備上。 這直到5月底才被執行。我的應用程序在兩年內完全按照相同的規範工作,但我懷疑Google Play已經進行了更新以強制執行此限制。

解決辦法:如果您有對API 7開發的應用程序,但你希望它是可在xlargeScreens設備,必須在設置您的清單

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

如果任何的minSdkVersion或targetSdkVersion是9或更大,Google Play將允許xlargeScreen設備查看您的應用。

相關問題