0

recently , i have developed a new game using cocos2d-x v3.0, today i have published my app, but google play said that your device isn't compatible with this version, i have lenovo tablet and, also i noticed that my app isn't compatible with nexus 7, nexus 10 and many others.

Google developer console shows me this optimization tips :

Your APK should only require hardware features that are usually available on tablets.

My manifest:

<?xml version='1.0' encoding='UTF-8'?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android" android:versionCode="10140002" android:versionName="1.3">

<uses-sdk android:minSdkVersion="10"  android:targetSdkVersion="14"/>
<uses-feature android:glEsVersion="0x00020000" />

        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
        <uses-permission android:name="android.permission.VIBRATE" android:required="false" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
        <uses-permission android:name="android.permission.CALL_PHONE" android:required="false" />   
        <uses-permission android:name="android.permission.GET_TASKS" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
         <uses-permission android:name="android.permission.RECEIVE_SMS" android:required="false"/>
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
        <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
        <uses-permission android:name="android.permission.READ_SMS" android:required="false"/>
        <uses-permission android:name="android.permission.WAKE_LOCK"  />
        <uses-permission android:name="android.permission.GET_ACCOUNTS" android:required="false" />
        <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
         <uses-permission android:name="com.android.vending.BILLING" />
         <uses-permission android:name="com.android.vending.CHECK_LICENSE" />
         <uses-permission android:name="android.permission.READ_PHONE_STATE" android:required="false" />
    <permission android:protectionLevel="signature" android:name="com.example.android.permission.C2D_MESSAGE"  />
    <uses-permission android:name="com.example.android.permission.C2D_MESSAGE" />

<application android:icon="@drawable/icon" android:label="@string/app_name"   android:name="MainApplication">

      <!-- Tell NativeActivity the name of our .so -->
    <meta-data android:name="android.app.lib_name"
               android:value="cocos2dcpp" />
    <activity android:configChanges="orientation" android:label="@string/app_name" android:name="com.example.android.AppActivity" android:screenOrientation="sensorPortait" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">



    </activity>
     <service android:name="com.parse.PushService" />
        <receiver android:name="com.parse.ParseBroadcastReceiver">
          <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.USER_PRESENT" />
          </intent-filter>
        </receiver>
        <receiver android:name="com.parse.GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
          <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />


            <category android:name="com.example.android" />
          </intent-filter>
        </receiver>
         <!--
     In order to start the service, it must be uniquely registered with
     the package manager here. 
    -->
    <service android:name=".SampleDownloaderService" />

    <!--
     In order for the alarm manager to contact the downloader script, the receiver
     must be uniquely registered with the package manager here. 
    -->
    <receiver android:name=".SampleAlarmReceiver" />

<!--  this activity  check if the expansion file is available   -->
    <activity android:configChanges="orientation" android:label="@string/app_name"  android:name="com.example.android.MainActivity" android:screenOrientation="sensorPortait" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
          <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>


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

user3895008
  • 31
  • 1
  • 7

1 Answers1

0

Wow, that's a lot of permissions. In any case since it uses some phone function you probably require this additional one:

<uses-feature android:name="android.hardware.telephony" android:required="false"/>
RyPope
  • 2,645
  • 27
  • 51
  • Thanks, that helps me ,but i there's many devices not support devices for example 47 Huawei devices and others. – user3895008 Sep 16 '14 at 00:33
  • That's just part of having so many required hardware features. You can look into setting requirements to false for other features but it may make your app unusable. If this solved your issue please mark as accepted. – RyPope Sep 16 '14 at 02:28