2012-05-20 57 views
5

我在Play商店中放置了一個應用,我的朋友在兩臺設備上運行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> 
+0

發佈AndroidManifest.xml以及您的朋友擁有的名稱設備。請特別注意清單中的任何'use-feature'和'permission'標籤。 –

+0

我的朋友有一臺Galaxy S2(不起作用),它適用於他的Transformer Prime。 – snotyak

+0

此時它可能是Android Market設置中的一個限制,您可能會意外地以某種方式過濾掉設備。查看我更新的帖子以獲取詳細信息。同時嘗試着看看亞行,同時嘗試安裝apk的細節。使用命令adb install Filename.apk將其安裝到Galaxy。 –

回答

7

仔細檢查<uses-feature>標籤在你AndroidManifest.xml文件。這聽起來像你的應用程序需要一個設備不支持的功能。

您也應該檢查,看看是否有下面聲明瞭AndroidManifest.xml

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

您希望您的應用程序(通過15沒有的API 3)運行API 3和設備上面工作。上面的代碼將確保您的應用程序可以與API 3以上的所有設備一起使用。請注意,您通常不想使用android:maxSdkVersion屬性(如果您當前正在使用它)。

+0

令人懷疑這是答案。這是一個硬件過濾器,可能會導致不兼容。 –

+0

啊,對...沒有看到兩臺設備都在運行4.0.3。在這種情況下,我需要更多的信息來確定究竟是什麼錯誤... –

+0

我沒有任何標籤。我確實擺脫了我的android:targetSdkVersion =「15」 – snotyak

9

由於2臺設備在同一版本上,導致不兼容消息的邏輯解釋是設備不同,應用程序正在使用其中一個設備不支持的功能。看看你的AndroidManifest.xml並密切關注uses-featureuses-permission標籤。 Google Play商店將使用這些來濾除不兼容的設備。

例如,如果您有<uses-permission android:name="android.hardware.camera">,而其中一部手機沒有相機,則會被過濾掉。因爲對權限的請求意味着您的應用需要相機才能正常工作。您可以通過將<uses-feature android:name="android.hardware.camera" android:required="false" />添加到您的AndroidManifest.xml中來解決此問題。當然,您還需要代碼來防止您的應用在無法訪問相機時嘗試訪問相機。

看這個頁面以獲取更多信息,Google Play Filters

Google Play有一種方法可以指示是什麼導致設備被過濾掉。這非常簡潔,但轉到設備下的頁面底部並選擇顯示設備,然後篩選Galaxy以驗證它是否基於清單進行排除。

Google Play Filter

+0

我只有,它對我的​​應用程序是必需的:/ – snotyak

+0

這應該是好的。幾乎所有的設備都有可寫的內存。 –

1

我擺脫

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

和現在的工作。

0

總是在清單中定義的東西,谷歌Playstore過濾出你的應用程序的一些設備。 類似於:

  1. 聲明的特定目標Sdk版本。
  2. 已定義攝像頭權限(會過濾沒有攝像頭的設備)
  3. 使用功能攝像頭。
  4. 啓用SIM的設備。
  5. 設備與Wifi。
  6. Min sdk版本。

所以,你必須記住,你必須達到你的目標的最大設備,你必須選擇一些功能和權限。

希望這會給你有關發佈應用程序的想法。

相關問題