4

I'm doing a little android app that has to run on several Huawei U8180 (A budget 2.2 Android device).

I've published the app on Google Play and even though the console shows that the model is supported by the app, it just doesn't appear on the Play Store app or, when trying to install the app via Browser, it says the device is not supported.

It is a pretty simple app, actually, and I did the whole debugging in it, but it just wont show nor install on the phone!

The requirements are these:

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

How do I find out which <uses-permision>, or whatever else that could be, stops the app from being shown and installed on the phone?

LINKS:

The app (work in progress): https://play.google.com/store/apps/details?id=com.cimp.matitec&feature=search_result#?t=W251bGwsMSwyLDEsImNvbS5jaW1wLm1hdGl0ZWMiXQ

Huawei U8180: http://www.gsmarena.com/huawei_u8180_ideos_x1-4204.php

EDIT: Here's the Manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.cimp.matitec"
android:versionCode="4"
android:versionName="1.0.0.3" 
>

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

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

<application
    android:icon="@drawable/logo_matitec"
    android:label="@string/app_name"
    android:name=".MatiTecApplication"
    android:theme="@style/Theme.MatiTec"
    android:allowBackup="true">
    <activity
        android:name=".DbTemas"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
    </activity>
    <activity 
        android:name=".Tema"
        android:screenOrientation="portrait" >
    </activity>
    <activity 
        android:name=".Modulos"
        android:screenOrientation="portrait" >
    </activity>
    <activity android:name=".social" 
        android:theme="@style/Theme.MatiTecBG"
        android:screenOrientation="portrait"
        ></activity>
    <activity android:name=".NewsFeed"
         android:theme="@style/Theme.MatiTecBG"
         android:screenOrientation="portrait"
         ></activity>
    <activity
        android:name=".Perfil"
        android:screenOrientation="portrait" >
    </activity>
    <activity 
        android:name=".Estadisticas"
        android:screenOrientation="portrait" >
    </activity>
    <activity android:name=".Login"
        android:noHistory="true"
        android:theme="@style/Theme.Matitec_login"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity 
        android:name=".Lecturas"
        android:screenOrientation="portrait"
        android:theme="@style/list">
    </activity>
    <activity
        android:name=".Ejercicio"
        android:screenOrientation="portrait">
    </activity>
    <activity 
        android:name=".EjercicioDinamico"
        android:screenOrientation="portrait" >
    </activity>
    <activity 
        android:name=".ModulosEjercicios"
        android:screenOrientation="portrait" >
    </activity>
</application>

EDIT 2: The Logcat output when opening the app entry from the browser, there's something about restriction = 9

I/ActivityManager(  129): Displayed activity com.android.vending/com.google.android.finsky.activities.MainActivity: 320 ms (total 320 ms)
D/Finsky  (  508): [1] SelfUpdateScheduler.checkForSelfUpdate: Skipping DFE self-update. Local Version [80210006] >= Server Version [-1]
E/Finsky  (  508): [24] ElegantGoogleAuthUtil.ensurePlayServicesAvailable: GooglePlayServices is not available.
I/ElegantRequestDirector(  508): I/O exception (org.apache.http.NoHttpResponseException) caught when processing request: The target server failed to respond
D/PlayEventLogger(  508): ActiveExperiments changed, sending with next LogEvent
I/ElegantRequestDirector(  508): Retrying request
D/Finsky  (  508): [1] LibraryUtils.isAvailable: com.cimp.matitec not available [restriction=9].
D/Finsky  (  508): [1] DocUtils.getAvailabilityRestrictionResourceId: Item is not available. Reason: 9
D/Finsky  (  508): [1] DetailsDataBasedFragment.rebindViews: Page [class=DetailsFragment] loaded in [1087 ms] (hasDetailsDataLoaded? false)
D/Finsky  (  508): [1] LibraryUtils.isAvailable: com.cimp.matitec not available [restriction=9].
D/Finsky  (  508): [1] LibraryUtils.isAvailable: com.cimp.matitec not available [restriction=9].
D/QCRIL_MSC (   76): "RIL"=>"AMSS" [ label = "cm_ph_cmd_get_ph_info()"];
W/Finsky  (  508): [1] HistogramView.bind: No histogram data received from server
D/Finsky  (  508): [1] LibraryUtils.isAvailable: com.cimp.matitec not available [restriction=9].
D/Finsky  (  508): [1] DocUtils.getAvailabilityRestrictionResourceId: Item is not available. Reason: 9
D/Finsky  (  508): [1] DetailsDataBasedFragment.rebindViews: Page [class=DetailsFragment] loaded in [1490 ms] (hasDetailsDataLoaded? true)
V/StkAppReceiver(  565): start to check load situation:==true
V/StkAppReceiver(  565): continue action
V/StatusBarPolicy(  129): getPPPoEDeskTopIcon() mCplusWStatus= -1
D/Volley  (  508): [13] BasicNetwork.logSlowRequests: HTTP response for request=<[ ] https://android.clients.google.com/fdfe/log 0xe8d195d1 NORMAL 41> [lifetime=3491], [size=8], [rc=200], [retryCount=0]
I/Resources(  508): Loaded time zone names for en_US in 641ms.
D/Volley  (  508): [1] Request.finish: 4171 ms: [ ] https://android.clients.google.com/fdfe/log 0xe8d195d1 NORMAL 41
V/StatusBarPolicy(  129): getPPPoEDeskTopIcon() mCplusWStatus= -1
V/StkAppReceiver(  565): start to check load situation:==true
V/StkAppReceiver(  565): continue action
Jason Aller
  • 3,541
  • 28
  • 38
  • 38
Hito_kun
  • 962
  • 3
  • 13
  • 26
  • 1
    Your Google Play app appears to be country locked as it is showing up as incompatible with every device I own which are all USA based. – Morrison Chang Jun 18 '13 at 21:52
  • It is supposed to only work in México. But lemme select all countries anyways so I can check what's going on – Hito_kun Jun 18 '13 at 22:00
  • Do you use `supports-screen` tag in the manifest? – TronicZomB Jun 21 '13 at 12:06
  • Nope, I thought it wasn't supported in API 8, but I'm gonna check now – Hito_kun Jun 21 '13 at 19:16
  • Are you *sure* your device is still running Android 2.2? Have you tried testing a 2.2 emulator? – CommonsWare Jun 24 '13 at 11:49
  • The Android version installed is 2.2.2. I've tried it on the emulator AND manually installing the APK in the phone. It just won't install through the Play Store :c – Hito_kun Jun 24 '13 at 16:38
  • It won't install or won't appear for your device? Have you tried it with other device or other account? – B770 Jun 24 '13 at 17:58
  • yup. I've tried with several devices and without issues – Hito_kun Jun 24 '13 at 18:04
  • Can you run "adb logcat" on the device while attempting to install the app via Browser? Usually when an install fails, there's a logcat message explaining why. – Adam Bliss Jun 26 '13 at 06:40
  • Your app has a content rating of Medium Maturity. Is this category enabled in the Google Play app (Content filtering options)? – molnarm Jun 27 '13 at 15:49
  • No. To make it show on the device, I browse via web to the store and open the app store via the URL of the app. Then it displays is not compartible with the phone – Hito_kun Jun 28 '13 at 17:16
  • I've added Logcat output, see if something there tells anything – Hito_kun Jun 29 '13 at 17:41

4 Answers4

3

I guess the permissions may not be the problem. These are more or less standard permission every app wants to have today. There are some other things that are filterd by Google Playstore:

  • <supports-screens>
  • <uses-configuration>
  • <uses-feature>
  • <uses-library>
  • <uses-permission>
  • <uses-sdk>

From the doku here

Check your Manifest file if there's something special.

Perhaps this might help:

<supports-screens  
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"    
android:resizeable="true"
android:anyDensity="true"/>
B770
  • 1,272
  • 3
  • 17
  • 34
1

This is a bit old but have you tried the solutions from this question ?

My Android App shows as "this item is not compatible with your device"

Specifically, does your app require any pre-requisite on the device (gapps or other) ?

Are you somehow using the old developer console interface ? If so, have you turned on the "copy protection feature" ? this used to cause exactly this kind of problems in the past.

Community
  • 1
  • 1
Muzikant
  • 8,070
  • 5
  • 54
  • 88
1

Is your minimum API level requirement actually 8? Because it is such a simple app, you may want to try to bump that level down to 7, or even lower if you can manage it. It may just be that the minimum API requirement is what is filtering your application for that device.

Try testing your app in an emulator that is pre 2.2.X to see if it will run without crashing, if so bump the version down and test it down the line of android releases until it crashes, then just set your minSdkVersion to that API level..

Edit: It might be worth it to check the Filters page on the Android developers site:

http://developer.android.com/google/play/filters.html

David Freitag
  • 2,252
  • 2
  • 16
  • 18
  • Create a new android application that is literally nothing more than a hello world app. Publish it to the play store, if it shows up for these phones start building your application's features in step by step. After each iteration of changes, ensure you can still load the application. At some point you will find exactly what is causing your issue. My guess is that the manufacturer took android and tried to make it their own, they likely broke a lot of the features. If building a clean app doesn't work, try tweaking your project's initial settings. – David Freitag Jul 01 '13 at 07:01
  • It's a pretty vanilla 2.2, but lemme check – Hito_kun Jul 03 '13 at 22:36
0

Use this statement if device does not support any features for example -

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

in your manifest.

Vivek Jain
  • 3,811
  • 6
  • 30
  • 47
Sharad Mhaske
  • 1,103
  • 9
  • 19