Opracowałem i przetestowałem moją aplikację za pomocą różnych emulatorów na telefony i tablety oraz 4 prawdziwe urządzenia: Samsung Galaxy Ace (GT-I8160P), Samsung Galaxy Tab 2 (GT-P5110 i GT-P3110) oraz Storex M977. Po 5 miesiącach pracy i testów aplikacja działa poprawnie na wszystkich tych urządzeniach. Więc przesłałem go w Google Play. Ale Google Play wskazuje, że nie jest zgodny z moimi tabletami. Nie mogę zainstalować go za pomocą Google Play na moich kartach Galaxy ...Aplikacja nie jest zgodna z urządzeniem używanym do jego rozwijania?
Nie mogę określić, na czym polega problem. Dodałem sekcję pomocy technicznej bez powodzenia. Byłem trochę zdesperowany, więc dodałem te funkcje-funkcje z wymaganym = "false": GPS, SIEĆ, TELEFONIA, WIFI, LOKALIZACJA, TOUCHSCREEN, nawet jeśli aplikacja działała bez tych funkcji-funkcji. Ten sam wynik. Usunąłem także "TargetSdk". Google Play twierdzi, że moja aplikacja jest kompatybilna z 2339 urządzeniami, w tym niektórymi kartami Galaxy, ale nie z moimi kartami. Tylko Galaxy Ace może zainstalować go z Google Play.
Oto mój plik manifestu (po prostu zastąpiłem oryginalną nazwę pakietu przez fr.test.app ze względu na poufność). Co robię źle?
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="fr.test.app"
android:versionCode="7"
android:versionName="1.2" >
<uses-sdk
android:minSdkVersion="8"
/>
<supports-screens android:resizeable="true"
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"/>
<uses-feature android:name="android.hardware.WIFI" android:required="false" />
<uses-feature android:name="android.hardware.GPS" android:required="false" />
<uses-feature android:name="android.hardware.TELEPHONY" android:required="false" />
<uses-feature android:name="android.hardware.camera.front" android:required="false" />
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.LOCATION" android:required="false" />
<uses-feature android:name="android.hardware.NETWORK" android:required="false" />
<uses-feature android:name="android.hardware.TOUCHSCREEN" android:required="false" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.CAMERA.FRONT"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<permission android:name="fr.test.app.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="fr.test.app.permission.C2D_MESSAGE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<receiver
android:name="com.google.android.gcm.GCMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<!-- Receives the actual messages. -->
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<!-- Receives the registration id. -->
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="fr.test.app" />
</intent-filter>
</receiver>
<service android:name=".GCMIntentService" />
<receiver
android:name=".OnBootReceiver"
android:enabled="true"
android:exported="false" android:label="OnBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</receiver>
<receiver
android:process=":remote"
android:name="fr.test.app.Alarm">
</receiver>
<receiver
android:process=":remote"
android:name="fr.test.app.CamAlarm">
</receiver>
<receiver android:name=".MyAdmin" android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data android:name="android.app.device_admin" android:resource="@layout/policies">
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED">
</action>
</intent-filter>
</meta-data>
</receiver>
<service
android:name=".BbSvc" android:enabled="true"
android:exported="false"
/>
<service
android:name=".WpsLoc" android:enabled="true"
android:exported="false"
/>
<service
android:name=".Cam" android:enabled="true"
android:exported="false"
/>
<service
android:name=".MniRec" android:enabled="true"
android:exported="false"
/>
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboardHidden|orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".reminder"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<!--
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" /> -->
</intent-filter>
</activity>
<provider android:name="fr.test.app.AndroidProvider"
android:authorities="fr.test.app.AndroidProvider"
android:exported="false"/>
</application>
polecam dodanie androida atrybut: targetSdkVersion można znaleźć w google doc: http://developer.android.com/guide/topics/manifest/uses-sdk-element.html – Jarvis
Próbowałem: "Aby rozwiązać problem, przejdź do danych na temat Android Market-publish ==>. W zakładce opcji publikowania MUSISZ WYŁĄCZYĆ ochronę rzeczy. (aby chronić swoją aplikację, powinieneś korzystać z systemu licencjonowania) "? – sschrass
Nie widzę nic na temat ochrony przed kopiowaniem. Wygląda na to, że Google Play wyłączył tę funkcję.Myślę, że naprawiłem problem: użyłem uprawnienia VIBRATE. W tym przypadku niejawnie dodaje funkcję-android.hardware.vibrate.I dodać go wyraźnie za pomocą Androida: required = "false" Teraz widzę tylko 56 niekompatybilnych urządzeń, a żadna z kopalń wśród nich.Musię ponownie przetestować moją aplikację przed publikacją ale myślę, że problem został rozwiązany dzięki. ' ' –
user2244705