5

Ho una relativa app semplice che era già nel Play Store di Google.Dopo l'aggiornamento, l'APK supporta un numero di dispositivi inferiore rispetto a quello precedente

Ora ho fatto un aggiornamento di questa app. Un punto di questo aggiornamento è stato che includo lo scanner ZBar. Il resto delle modifiche era minimo e non dovrebbe avere alcuna influenza sul mio problema.

Ho appena inserito la versione più recente della mia app nel Play Store e ricevo il seguente avviso: "Avviso: gli APK attivi supportano meno dispositivi rispetto agli APK attivi in ​​precedenza. Alcuni utenti non riceveranno aggiornamenti."

Ho scaricato ZBarAndroidSDK-0.2.zip da sourceforge.net (http://sourceforge.net/projects/zbar/files/AndroidSDK/) e l'ho importato nel mio progetto come spiegato nel file README .

Ho testato l'app locale sul mio HTC Wildfire S (-> Versione 2.3.5), su Samsung Galaxy 3 (GT-I5800 -> Versione 2.2) e sul mio Galaxy Nexus (-> Versione 4.2). Non c'è mai stato un problema. Tutto ha funzionato. Ho anche testato l'APK esportato e non ho avuto problemi.

Ora aggiungo questo APK al Play Store e aggiornato la mia app e ricevo l'avviso per i dispositivi testati. Né il mio HTC Wildfire, né il mio Samsung Galaxy 3 possono aggiornare la nuova versione.

Qualcuno può aiutarmi e spiegarmi qual è il problema?

Grazie mille !!!

EDIT:

mio manifesto:

<?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> 

e il manifesto di 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

potresti incollare il contenuto di AndroidManifest? E anche ZBar si manifesta. Nota che anche le librerie hanno il proprio file manifest –

+3

Basta confrontare il file manifest della versione aggiornata e della versione precedente. Controlla se ci sono nuovi tag '/' nella nuova versione, che non era presente nella vecchia versione. – Krishnabhadra

+0

L'unica differenza tra il mio manifest e gli ZBar è la seguente: _ _. Ma non credo che questo sia il problema. La mia ipotesi è che Google abbia problemi con le librerie aggiunte dal progetto ZBar. Ottengo 3 cartelle quando ho importato il progetto: armeabi, armeabi-v7a e x86. Quindi penso che Google non capisca che armeabi è qualcosa come armeabi-v6. Qualcuno ha un'idea di come risolvere questo? – owe

risposta

3

Prima di tutto, qualsiasi modifica dei dispositivi utilizzati deve essere un risultato del manifest. Questa è l'unica cosa che il mercato Android (Google Play) utilizza per determinare quali dispositivi può essere utilizzato da un'app. Come hai dimostrato, l'unica differenza era che avevi un obbligo di autofocus. Se si modifica questa linea al seguente, dovrebbe funzionare.

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

In sostanza, questo vi permetterà di utilizzare questa caratteristica, ma non lo rendono necessario. Questo dovrebbe consentire la piena compatibilità con tutti i dispositivi precedenti. Per ulteriori informazioni, vedere this answer.

Devo anche notare che ho visto che la fotocamera non era richiesta dalla tua app principale, ma è richiesta da zbar. Questo potrebbe anche fare la differenza.

+0

Hey PearsonArtPhoto, grazie mille. Provo ad aggiornare una nuova versione con "autofocus". – owe

+1

In genere se ti piace una risposta, dovresti farla valere/accettarla. – PearsonArtPhoto

+0

Ci scusiamo, la prossima volta :). Ora ho caricato la mia app con la funzione di "autofocus", ma ciò non ha alcun effetto. Inoltre, non penso che la mia prima ipotesi con la libs (-> armeabi) sia corretta. Ho controllato il cpu_abi su entrambi i dispositivi (Wildfire S, Galaxy 3) ed entrambi hanno "armeabi". Qualcuno ha fatto la stessa esperienza? Io davvero non capisco quale sia il problema. – owe

1

Ho avuto questo problema con la mia domanda (con scanner Zbar) su tablet Zenithink C93 (http://www.zenithink.com/Eproducts_C93.php). Avevo bisogno di creare un'applicazione compatibile con i dispositivi Zenithink.

Ho pubblicato app in Play-Store di Google.Quando ho provato installare l'applicazione sul Zenithink C93 ho ottenuto l'errore: "Questo articolo non è compatibile con il dispositivo"

mio manifesto aveva questa linea:

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

Ma non mi ha aiutato.

Inoltre ho avuto questa etichetta di supporto-schermi:

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

Stranamente, ma dopo una lunga soluzione di ricerca ho completamente rimosso supporto schermi tag e mettere Android: required = "false" per <uses-feature android:name="android.hardware.camera"/> applicazione è diventato compatibile con il dispositivo Zenithink.

Ora il mio manifesto assomiglia a questo:

... 
<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... 

Questo non è una buona soluzione, perché l'applicazione sarà compatibile con quasi tutti i dispositivi, ma forse sarà aiutare qualcuno.

+0

Penso che la fotocamera sia un'apparecchiatura abbastanza comune. Zenithink C93 non ha una fotocamera? – juejiang

+0

Zenithink C93 ha una fotocamera frontale (2mpx). – anivaler

Problemi correlati