5

Ich habe eine relativ einfache App, die bereits im Play-Store von Google war.Nach dem Update unterstützt das APK weniger Geräte als zuvor

Jetzt habe ich ein Update dieser App gemacht. Ein Punkt dieses Updates war, dass ich den ZBar-Scanner einschließe. Der Rest der Änderungen war minimal und sollte keinen Einfluss auf mein Problem haben.

Ich habe gerade die neueste Version meiner App in den Play-Store gelegt und bekomme folgende Warnung: "Warnung: Aktive APKs unterstützen weniger Geräte als zuvor aktive APKs. Einige Benutzer erhalten keine Updates."

Ich habe ZBarAndroidSDK-0.2.zip von sourceforge.net (http://sourceforge.net/projects/zbar/files/AndroidSDK/) heruntergeladen und in mein Projekt importiert, wie es in der README-Datei erklärt wird .

Ich habe meine App lokal auf meinem HTC Wildfire S (-> Version 2.3.5), auf dem Samsung Galaxy 3 (GT-I5800 -> Version 2.2) und auf meinem Galaxy Nexus (-> Version 4.2) getestet. Es gab nie ein Problem. Alles hat funktioniert. Ich habe auch die exportierte APK getestet und hatte keine Probleme.

Jetzt füge ich diese APK zum Play-Store hinzu und aktualisiere meine App und ich bekomme die Warnung für die getesteten Geräte. Weder mein HTC Wildfire, noch mein Samsung Galaxy 3 können die neue Version aktualisieren.

Kann mir jemand helfen und mir erklären, was das Problem ist?

Vielen Dank !!!

EDIT:

Mein Manifest:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="de.myproject" 
android:versionCode="5" 
android:versionName="2.0" 
android:installLocation="preferExternal" 
> 

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="11"/> 

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

<application 
    android:uiOptions="splitActionBarWhenNarrow" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    > 

    <!-- enable the search dialog to send searches to SearchableActivity throughout the application --> 
    <meta-data 
     android:name="android.app.default_searchable" 
     android:value=".SearchableActivity" /> 

    <activity 
     android:label="@string/app_name" 
     android:name=".MainActivity" 
     android:screenOrientation="portrait" 
     android:theme="@style/Theme.NoBackground">         

     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

    </activity> 

    <activity 
     android:label="@string/app_name" 
     android:screenOrientation="landscape" 
     android:name=".zbar.ZBarScannerActivity">        
    </activity> 

</application> 

Und das Manifest von ZBar:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="net.sourceforge.zbar.android.CameraTest" 
    android:versionCode="1" 
    android:versionName="1.0"> 

<uses-sdk android:minSdkVersion="8" /> 
<uses-permission android:name="android.permission.CAMERA" /> 
<uses-feature android:name="android.hardware.camera" /> 
<uses-feature android:name="android.hardware.camera.autofocus" /> 

<application android:label="@string/app_name" > 
    <activity android:name="CameraTestActivity" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

+0

könnten Sie den Inhalt Ihres AndroidManifest einfügen? Und ZBars Manifest auch. Beachten Sie, dass Bibliotheken auch ihre eigene Manifest-Datei haben –

+3

Vergleichen Sie einfach die Manifest-Datei Ihrer aktualisierten Version und vorherigen Version. Sehen Sie, ob es neue '/' -Tags in der neuen Version gibt, die im alten nicht vorhanden waren. – Krishnabhadra

+0

Der einzige Unterschied zwischen meinem Manifest und dem ZBar ist die folgende Zeile: _ _. Aber ich glaube nicht, dass dies das Problem ist. Meine Vermutung ist, dass Google Probleme mit den hinzugefügten Bibliotheken durch das ZBar-Projekt hat. Ich erhalte 3 Ordner, wenn ich das Projekt importiere: armeabi, armeabi-v7a und x86. Also ich denke Google erkennt nicht, dass armeabi so etwas wie armeabi-v6 ist. Hat jemand eine Idee wie man das löst? – owe

Antwort

3

Zunächst muss jede Änderung der verwendeten Geräte ein Ergebnis des Manifests sein. Das ist das einzige, was der Android Market (Google Play) verwendet, um zu bestimmen, auf welchen Geräten eine App laufen kann. Wie Sie gezeigt haben, bestand der einzige Unterschied darin, dass Sie eine Autofokus-Anforderung hatten. Wenn Sie diese Zeile folgendermaßen ändern, sollte es funktionieren.

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

Im Wesentlichen können Sie diese Funktion verwenden, aber nicht erforderlich machen. Dies sollte die volle Kompatibilität mit allen vorherigen Geräten ermöglichen. Weitere Informationen finden Sie unter this answer.

Ich sollte auch beachten, dass ich sah, die Kamera wurde nicht von Ihrer Haupt-App benötigt, sondern wird von zbar benötigt. Dies könnte auch einen Unterschied machen.

+0

Hey PearsonArtPhoto, thnks eine Menge. Ich versuche eine neue Version mit dem "Autofokus" zu aktualisieren. – owe

+1

In der Regel, wenn Sie eine Antwort mögen, sollten Sie es aufwerten/akzeptieren. – PearsonArtPhoto

+0

Entschuldigung, beim nächsten Mal :). Jetzt habe ich meine App mit der Funktion "Autofokus" hochgeladen, aber das hat keine Wirkung. Ich glaube auch nicht, dass meine erste Annahme mit den libs (-> armeabi) richtig ist. Ich überprüfte die cpu_abi auf beiden Geräten (Wildfire S, Galaxy 3) und beide haben "Armeabi". Hat jemand die gleiche Erfahrung gemacht? Ich verstehe wirklich nicht, was das Problem ist. – owe

1

Ich hatte dieses Problem mit meiner Anwendung (mit Zbar-Scanner) auf dem Tablet Zenithink C93 (http://www.zenithink.com/Eproducts_C93.php). Ich brauchte eine mit Zenithink-Geräten kompatible Anwendung.

Ich veröffentlichte App im Play-Store von Google.Wenn ich installieren versucht, die Anwendung auf Zenithink C93 habe ich Fehler: „Dieser Artikel ist nicht kompatibel mit dem Gerät

Mein Manifest diese Linie hatte:

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

Aber es half mir nicht.

Auch hatte ich diese Unterstützung-Bildschirme tag:

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

Seltsam, aber nach einer langen Suchlösung I vollständig entfernt Support-Bildschirme Tag und setzen Android: required = "false" für <uses-feature android:name="android.hardware.camera"/> Anwendung wurde kompatibel mit Zenithink-Gerät.

Jetzt sieht mein Manifest wie folgt aus:

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

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 

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

<application... 

Diese keine gute Lösung ist, weil Anwendung mit fast allen Geräten kompatibel sein wird, aber vielleicht wird es jemand helfen.

+0

Ich denke, Kamera ist eine ziemlich häufige Ausrüstung. Zenithink C93 hat keine Kamera? – juejiang

+0

Zenithink C93 hat Frontkamera (2mpx). – anivaler