Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android: APK Icon is not being installed

I am able to deploy my application but for some reason, I am not able to get the icon to display in the pull up menu on the Home page of the OS. Does anyone know what I can do to solve this?

By the way, the application shows up in "Manage Applications" but does not show up as an icon for some reason. Through Eclipse, I am able to start the application after deployment but that's it... After that, I don't have any way to start it because there is no icon. :( Following is my manifest file:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.ApplicationName"
      android:versionCode="1"
      android:versionName="2.0">
    <application android:icon="@drawable/icon" 
                 android:debuggable="true"
                 android:label="@string/app_name">
        <activity android:name=".EntrySplash"
                  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.BROWSABLE"></category>  
                <data android:scheme="com.android.ApplicationName"></data> 
            </intent-filter>
        </activity>
        <activity android:name=".EntryScreen" android:label="@string/app_name">
        </activity>         
        <activity android:name=".ApplicationName" android:label="@string/app_name">
        </activity>     
    </application>
    <uses-sdk android:minSdkVersion="3" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest> 
like image 204
Legend Avatar asked Nov 09 '09 02:11

Legend


4 Answers

I had this problem as well, i think the fix that worked for me is i separated the intent tag like below

<intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter>
<intent-filter>
         <category android:name="android.intent.category.BROWSABLE"></category>  
         <data android:scheme="com.android.ApplicationName"></data> 
</intent-filter>

when i changed my manifest file like that, my icon showed up.

like image 190
j0sua3 Avatar answered Oct 31 '22 20:10

j0sua3


Try getting rid of your android.intent.category.BROWSABLE and <data android:scheme="com.android.ApplicationName"> temporarily, and see if your icon shows up.

Also, on an unrelated matter, I recommend that your uses-* elements be the first children of manifest, not the last. There have been rumors of problems with the XML parsing done by the Android Market, where it wants to see those before any elements.

like image 2
CommonsWare Avatar answered Oct 31 '22 18:10

CommonsWare


Had this same issue and found out that one caveat is that this correct intent on the main activity tag:

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

has to be in its own intent filter. you may have other items in the main activity's intent filters, and if so, separate the rest out in to a separate intent filter tag right below it. leave the MAIN and LAUNCHER together in its own.

Alot of the answers to this question on SO seem to miss that point.

Hope it helps!

like image 2
zonabi Avatar answered Oct 31 '22 18:10

zonabi


Well it is happening as you are giving two categories name to your launching activity. You launching activity should have only one category name in its Intent filter. But if you also need the Browsable activity then your Launching Activity may have 2 Intent Filters as show below.

You just replace your EntrySplash Activity code with the below code in you Manifest.xml file.

<activity android:name=".EntrySplash"
                  android:label="@string/app_name">
<intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" /> 
            </intent-filter>
<intent-filter>
                <category android:name="android.intent.category.BROWSABLE"></category>  
                <data android:scheme="com.android.ApplicationName"></data> 
            </intent-filter>
</activity>

This will sure work for you...

like image 2
Pravinsingh Waghela Avatar answered Oct 31 '22 18:10

Pravinsingh Waghela