8

Playストアにアプリを置いたところ、2台のデバイスで4.0.3を実行している友人が、アプリをインストールしようとすると、「お使いのデバイスはこのバージョンと互換性がありません」というメッセージが表示されました。

一方のデバイスはインストールを許可し、もう一方のデバイスはインストールを許可しません。API 3-15を許可し、両方のデバイスは4.0.3です。どうしたの?

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.snotyak.basicfuelcalcpro"
    android:versionCode="2"
    android:versionName="1.2.3" >
    <uses-sdk
        android:minSdkVersion="4" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <application
        android:name=".CalcApp"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/MainTheme" >
        <activity android:name=".CalcActivity" >
        </activity>
        <activity
            android:name=".PrefsActivity"
            android:label="@string/prefs_name" />
        <activity
            android:name=".CalcTabView"
            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=".AboutActivity"></activity>
        <activity android:name=".HistoryActivity" />
        <activity android:name=".AnalysisActivity" />
    </application>
</manifest>
4

5 に答える 5

12

2つのデバイスが同じバージョンであるため、非互換性メッセージの原因となっている論理的な説明は、デバイスが異なり、アプリがそれらの1つがサポートしていない機能を使用していることです。uses-featureAndroidManifest.xmlを見て、uses-permissionタグに細心の注意を払ってください。Google Playストアは、これらを使用して、互換性のないデバイスを除外します。

たとえば<uses-permission android:name="android.hardware.camera">、携帯電話の1つにカメラがない場合、そのカメラは除外されます。許可のリクエストは、アプリが正しく機能するためにカメラが必要であることを意味するためです。<uses-feature android:name="android.hardware.camera" android:required="false" />これは、AndroidManifest.xmlに追加することで修正できます。もちろん、アプリが利用できないときにカメラにアクセスしようとするのを防ぐためのコードも必要です。

詳細については、このページ、 GooglePlayフィルターをご覧ください。

Google Playには、デバイスが除外される原因を示す方法があります。非常に簡潔ですが、ページの下部にあるデバイスの下に移動し、[デバイスの表示]を選択してから、Galaxyをフィルタリングして、マニフェストに基づいて除外されていることを確認します。

GooglePlayフィルター

于 2012-05-20T01:34:19.290 に答える
9

ファイル内の<uses-feature>タグを再確認してください。AndroidManifest.xmlアプリケーションには、デバイスの1つがサポートしていない機能が必要なようです。

また、で次のように宣言されているかどうかを確認する必要がありますAndroidManifest.xml

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

API 3以降(API 3から15ではない)を実行しているデバイスでアプリケーションを動作させる必要があります。上記のコードは、アプリケーションがAPI 3より上のすべてのデバイスで動作することを保証します。通常、属性を使用したくないことに注意してくださいandroid:maxSdkVersion(現在使用している場合)。

于 2012-05-20T01:30:07.940 に答える
1

私は取り除きました

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

そしてそれは今動作します。

于 2012-05-20T18:10:48.857 に答える
1

常にマニフェストで定義されているもの、GooglePlaystoreは一部のデバイスにアプリを除外します。何かのようなもの:

  1. 特定のターゲットSDKバージョンを宣言しました。
  2. 定義されたカメラ権限(カメラなしでデバイスをフィルタリングします)
  3. フィーチャーカメラを使用します。
  4. SIM対応デバイス。
  5. Wifiを備えたデバイス。
  6. 最小SDKバージョン。

したがって、ターゲットの最大デバイスに到達する必要があることを覚えておく必要があります。一部の機能とアクセス許可をオプトアウトする必要があります。

これにより、アプリのリリースについてのアイデアが得られることを願っています。

于 2018-03-05T06:40:11.290 に答える
1

テスターの1人にも同じ問題があります。テスターが古いAndroidを使用している場合、テストの招待を受け入れるには、そのユーザーにWebリンクを提供する必要があります。ユーザーは、ブラウザーでリンクを開く必要があります。テストの招待を受け入れます。

Google Play Consoleからリンクを取得し、テストトラックの概要ページに移動し、[テスター]タブを開き、[テスターがテストに参加する方法]まで下にスクロールします。ここには、Android用とWeb用の2つのリンクがあります。 1つはウェブ用で、それらのテスターに​​送信します。テストの招待を受け入れた後、他のリンクからアプリにアクセスでき、エラーは発生しません。

于 2020-12-13T09:10:53.150 に答える