2

API レベル 7 以上ですべてをサポートする Android アプリを Google Play ストア ( https://play.google.com/store/apps/details?id=dkh.idex )に約 2 年間置いています。画面サイズ。いくつかのアクセス許可 (ACCESS_NETWORK_STATE、INTERNET、READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE) を使用します。

2013 年 4 月 22 日に、すべてのユーザー デバイスで正常に動作するバージョン (バージョン コード 44) をアップロードしました。1 か月後の 2013 年 5 月 22 日に、いくつかの小さな変更を加えた新しいバージョン (バージョン コード 45) をアップロードしましたが、ここ数日 (5 月 27 日から) に、多くのユーザーから、デバイスが互換性を失っているとの苦情が寄せられました。私のアプリの最新バージョン。これらのユーザーは、最大 2 年間、このような問題なくアプリを使用しています。一部のデバイスは引き続き最新バージョンにアップグレードできますが、アップグレードしようとするとデバイスに互換性がないというメッセージが表示されるデバイスもあります (古いバージョンのアプリが既にあることに注意してください)。Google Playストアで互換性がないと述べたデバイス(Samsung Galaxy Tab 10.1、古いバージョン)に、ADB(USB)を介してアプリケーションを直接インストールできました。

ファイルの変更セットを調べたところ、2 つのリリース間で 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> `

コードの残りの部分では、リソース ファイルにいくつかのテキストを追加し、いくつかの標準的な小さな変更を加えましたが、何らかの形で既にアプリに含まれていなかったものは何もありません。

私はこの問題に本当に困惑しています。これの原因を知っている人、またはGoogleがこれに影響を与える可能性のある何かを変更したかどうかを知っている人はいますか? さらに情報が必要な場合はお尋ねください。

4

1 に答える 1

0

私はそれを解決しました。

問題は、Google Play がデバイスの画面サイズに基づいてアプリケーションをフィルタリングすることでした。xlargeScreens は API 7 (バージョン 2.1) でサポートされていないため、これらのデバイスではフィルターが false に設定されます。これは 5 月末まで施行されませんでした。私のアプリは 2 年間まったく同じ仕様で動作していましたが、Google Play がこの制約を強制するために更新を行ったのではないかと考えています。

解決策: API 7 用に開発されたアプリを xlargeScreens デバイスで使用できるようにする場合は、マニフェストで設定する必要があります。

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

minSdkVersion または targetSdkVersion のいずれかが 9 以上の場合、Google Play は xlargeScreen デバイスがアプリを表示できるようにします。

于 2013-06-07T12:11:16.817 に答える