5

Playストアにアプリを置いたところ、4.1(Nexus 7)を実行している友人が、アプリをインストールしようとすると、「お使いのデバイスはこのバージョンと互換性がありません」というメッセージが表示されました。なぜこれが来たのですか?誰か助けてくれませんか。

Manifeast file

< ?xml version="1.0" encoding="utf-8"?>

< manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.ibkr.pcg"
      android:versionCode="3"
      android:versionName="1.1">

< uses-sdk android:minSdkVersion="7"  
      android:targetSdkVersion="8"/>
<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
<uses-permission android:name="android.permission.CAMERA" />        
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" ></uses-permission>  

<!-- C2DM Permissions Start -->
 <!-- Only this application can receive the messages and registration result --> 
<permission android:name="com.ibkr.pcg.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.ibkr.pcg.permission.C2D_MESSAGE" /> 

 <!-- This app has permission to register and receive message -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- End of the C2DM Permissions -->

<application android:icon="@drawable/pcgicon" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
    android:name="MyApplication"
    android:debuggable="true">
    <activity android:name=".PriceCheckGuruSplash"
              android:label="@string/app_name">      
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />    
        </intent-filter>  
    </activity>

     <!-- Only C2DM servers can send messages for the app. If permission is not set - any other app can generate it --> 
    <receiver
     android:name=".C2DMMessageReciever" android:permission="com.google.android.c2dm.permission.SEND" >
      <!-- Receive the actual message -->
     <intent-filter >
            <action android:name="com.google.android.c2dm.intent.RECEIVE" >  
            </action>
            <category android:name="com.ibkr.pcg" /> 
        </intent-filter>
    </receiver>

   <receiver
        android:name=".C2DMRegistrationReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter >
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" >
            </action>
            <category android:name="com.ibkr.pcg" />
        </intent-filter>
    </receiver>

    <activity android:name="MessageReceivedActivty" android:screenOrientation="portrait"/>
    <activity android:name="LoginScreen" android:screenOrientation="portrait"> </activity>
    <activity android:name="RegistrationScreen" android:screenOrientation="portrait"> </activity>
    <activity android:name="ForgotPasswordScreen" android:screenOrientation="portrait"> </activity>
    <activity android:name="UserPreferences" android:screenOrientation="portrait"> </activity>
    <activity android:name="TrackedItems" android:screenOrientation="portrait"> </activity> 
    <activity android:name="WebPage" android:screenOrientation="portrait"> </activity>
    <activity android:name="CustomTabActivity" android:screenOrientation="portrait"> </activity>
    <activity android:name="TabGroup1Activity" android:screenOrientation="portrait"> </activity>
    <activity android:name="TabGroup2Activity" android:screenOrientation="portrait"> </activity>
    <activity android:name="TabGroup3Activity" android:screenOrientation="portrait"> </activity>
    <activity android:name="TabGroup4Activity" android:screenOrientation="portrait"> </activity>
    <activity android:name="SearchScreen" android:screenOrientation="portrait"> </activity>
    <activity android:name="SearchResultsScreen" android:screenOrientation="portrait"></activity>
    <activity android:name="ProductDisplay" android:screenOrientation="portrait"></activity>
    <activity android:name="VendorsDisplay" android:screenOrientation="portrait"></activity>
    <activity android:name="Filter" android:screenOrientation="portrait"></activity>
    <activity android:name="barcodeScanner" android:screenOrientation="portrait"></activity>
    <activity android:name="ScannerPage" android:screenOrientation="portrait"></activity> 
    <activity android:name="Linegraphpage" android:screenOrientation="landscape"></activity>        
    <activity android:name="org.achartengine.GraphicalActivity" android:screenOrientation="landscape"/> 
    <activity android:name="org.acra.CrashReportDialog"
    android:theme="@android:style/Theme.Dialog"
    android:launchMode="singleInstance"
    android:excludeFromRecents="true"
    android:finishOnTaskLaunch="true" />
</application>

</マニフェスト>

ここに画像の説明を入力してください

4

7 に答える 7

5

//このandroid:targetSdkVersion="8"を削除します

Nexus7にはバックカメラ機能がありません。

<uses-permission android:name="android.permission.CAMERA" />

注:インテントを介してカメラを使用している場合、アプリケーションはこの許可を要求する必要はありません。カメラ機能-アプリケーションは、カメラ機能の使用も宣言する必要があります。次に例を示します。

  <uses-feature android:name="android.hardware.camera" />

カメラ機能のリストについては、マニフェスト機能リファレンスを参照してください。マニフェストにカメラ機能を追加すると、Google Playは、カメラが含まれていないデバイスや指定したカメラ機能をサポートしていないデバイスにアプリケーションがインストールされないようにします。詳細については

アプリケーションがカメラまたはカメラ機能を使用して適切な操作を行うことができるが、それを必要としない場合は、android:required属性を含め、falseに設定して、マニフェストでこれを指定する必要があります。

注:サポートについて言及する必要があります-画面

于 2012-09-07T07:59:03.990 に答える
5

これは、「android.permission.ACCESS_NETWORK_STATE」権限が原因です。デバイスには携帯電話モデムがありません。権限にandroid:required = "false"を入れて、そうでないデバイスにインストールできるようにする必要があります。それをサポートする

フィルタリングを制御するには、要素の要件を「発見」するためにGoogle Playに依存するのではなく、常に要素のハードウェア機能を明示的に宣言します。次に、特定の機能のフィルタリングを無効にする場合は、宣言にandroid:required="false"属性を追加できます。

http://developer.android.com/guide/topics/manifest/uses-permission-element.html

于 2012-09-07T08:00:36.270 に答える
2

他の人がすでに提案したように-カメラはここで問題になる可能性があります。アンドロイド開発者のブログにネクサス7についての良い投稿があります。基本的には前面カメラが1つしかないため、デフォルトのカメラ要件を要求するアプリは失敗します。

基本的に、リクエストを拡張して重要ではないと言ってから、アプリで詳細を処理する必要があります...

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

詳細については、リンク http://android-developers.blogspot.com.au/2012/07/getting-your-app-ready-for-jelly-bean.htmlをたどってください。

于 2012-09-07T08:01:09.043 に答える
1

android:targetSdkVersion特別な理由がない限り、アプリをビルドするときに利用できる最高のSDKである必要があります。新しいメソッドで動作を犠牲にすることを意味する場合でも、特定のデバイスで正しく動作する必要があるため、新しいメソッドとAPIが呼び出されないことを保証したい場合があります。

ほとんどの場合、最新のSDKをダウンロードしandroid:targetSdkVersionて、最新バージョンに設定します。

于 2012-09-07T08:12:30.500 に答える
0

これを使うだけ

<uses-sdk android:minSdkVersion="7" />
于 2012-09-07T07:56:26.003 に答える
0

以下を使用してください:

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

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="16" /> //or just remove the targetSdkVersion, altough it is not recommended
于 2012-09-07T07:59:06.830 に答える
0

一部のデバイスに対して、ManifestGoogleによるアプリの除外で定義された属性を常に使用します。Playstore例えば:

  1. 特定のターゲットSDKを宣言しVersionました。
  2. 定義済みカメラpermission(カメラなしでデバイスをフィルタリングします)
  3. フィーチャーカメラを使用します。
  4. SIM対応デバイス。
  5. Wifiを備えたデバイス。

そのため、アプリをリリースする前に、一部の機能と権限をオプトアウトするよりも、ターゲットの最大デバイスに到達する必要があることを覚えておく必要がありますSdk version target

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

于 2018-03-05T06:33:46.137 に答える