1. ホーム
  2. android

[解決済み] Google Playストアで、私のAndroidアプリは私の端末と互換性がないと表示されるのはなぜですか?

2023-01-30 18:21:09

質問

この質問をするのをためらっているのは、あたかも 多くの人が同じような問題を抱えている のようですが、私の特定のインスタンスを解決する解決策は見つかっていません。

私は Android アプリを開発しました ( 実際のアプリへのリンク ) を開発し、Play ストアにアップロードしました。Playストアの表示は

"This app is incompatible with your XT Mobile Network HTC HTC Wildfire S A510b."

もちろんそれは、アプリを開発した携帯電話なので べき は互換性があるはずです。他のデバイスを持つ人の中には、互換性があると報告する人もいれば、互換性がないと報告する人もいますが、傾向はつかめません。(どうやら私は、Android デバイスを持っている人をあまり知らないようです。)

私は以下を試しました。

  • の外に大きなファイルを移動する。 res/raw ディレクトリに移動しました。 この回答 . その中にある唯一のファイルは ~700 kB のテキストファイルでしたが、私はそれを assets/ に移動しましたが、明らかな変化はありませんでした。

  • は、以下の2つの機能アサーションを追加します。

    <uses-feature android:name="android.hardware.faketouch" />
    <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
    
    

    をサポートしているとは言っていないのではと思いつつも android.hardware.touchscreen 機能をサポートしていないのかもしれないと思いましたが、やはり、明らかな変化はありません。

APK を Play ストアにアップロードする際、アクティブであると報告される唯一のフィルターは android.hardware.faketouch 機能のみです。

以下は、出力された aapt dump badging bin/NZSLDict-release.apk :

package: name='com.hewgill.android.nzsldict' versionCode='3' versionName='1.0.2'
sdkVersion:'4'
targetSdkVersion:'4'
uses-feature:'android.hardware.faketouch'
uses-feature-not-required:'android.hardware.touchscreen'
application-label:'NZSL Dictionary'
application-icon-160:'res/drawable/icon.png'
application: label='NZSL Dictionary' icon='res/drawable/icon.png'
launchable-activity: name='com.hewgill.android.nzsldict.NZSLDictionary'  label='NZSL Dictionary' icon=''
main
other-activities
supports-screens: 'small' 'normal' 'large'
supports-any-density: 'true'
locales: '--_--'
densities: '160'

そして完全性を期すために、私のマニフェスト・ファイル。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.hewgill.android.nzsldict"
      android:versionCode="3"
      android:versionName="1.0.2">
    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="4" />
    <uses-feature android:name="android.hardware.faketouch" />
    <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
    <application android:label="@string/app_name"
        android:icon="@drawable/icon">
        <activity android:name="NZSLDictionary"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".WordActivity" />
        <activity android:name=".VideoActivity" />
        <activity android:name=".AboutActivity" />
    </application>
</manifest> 

Play ストアの "Device Availability" のセクションでは、Wildfire S を含むすべての HTC デバイスが、"G1 (trout)" と "Touch Viva (opal)" を除いてサポートされていることが確認できます(これらが何であれ)。実は、quot;Wildfire S (marvel)" と "Wildfire S A515c (marvelc)" はサポート対象として記載されていますが、私の "Wildfire S A510b" は特に記載されていないようなのですが、どうなんでしょう?このようなサブモデルの識別はそんなに重要なことなのでしょうか?私は、Google Play から私の携帯電話に他のいくつかのアプリを問題なくダウンロードすることができました。

唯一、私が

のように)最新版をアップロードしてから 4 ~ 6 時間待つことです。 このコメント のように)、まだ私の携帯電話と互換性がないと言っているかどうかを確認することです。しかし、Play ストアのページには、現在私がアップロードした最新の 1.0.2 が表示されています。

どのように解決するのですか?

答えは、アプリケーションのサイズにのみ関連しているようです。マニフェスト ファイルに特別なものは何もないシンプルな "hello world" アプリを作成し、Play ストアにアップロードしたところ、私のデバイスと互換性があると報告されました。

マニフェスト ファイルにコンテンツを追加した以外は、このアプリで何も変更しませんでした。 res/drawable ディレクトリにコンテンツを追加した以外は、何も変更していません。このとき .apk のサイズが約 32 MB に達したとき、Play ストアは私のアプリが私の電話機と互換性がないという報告を開始しました。

Google の開発者サポートに連絡して、この制限の理由を明確にするよう依頼するつもりです。

アップデイト : Google開発者サポートの回答はこちらです。

ご指摘ありがとうございます。現在、Google Play へのアプリのアップロードの最大ファイルサイズ制限は、約 50 MB です。

しかし、一部のデバイスでは、キャッシュ パーティションが 50 MB より小さく、ユーザーがアプリをダウンロードできない場合があります。たとえば、HTC Wildfire デバイスの一部は、35 ~ 40 MB のキャッシュ パーティションを持っていることが知られています。Google Play が、アプリを格納するのに十分な大きさのキャッシュを持たないそのようなデバイスを識別できた場合、ユーザーに対してアプリを表示しないようにフィルタリングすることがあります。

私は結局、品質を少し落として、すべての PNG ファイルを JPG に変換することによって問題を解決しました。その .apk ファイルは 28 MB になり、私の携帯電話で Google Play が強制している閾値を下回りました。

また、すべての <uses-feature> をすべて削除し、今はこれだけです。

<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />