Reputation: 5108
I am facing a problem. I have converted a javascript application to Android app by using phonegap, cordova and eclipse. The App works cool.
But the problem is, it always displays cordova icon as app icon. I replaced all the icons in the "project/res"
folder. But still it shows the default icon only?
I googled it and came to know that i have to change in the manifest file. So, i changed in the AndroidManifest.XML
with the code,
android:icon="@drawable/icon"
"icon" is my image name.
What is the problem here? Why i am not getting my own icon? I am new to this Android Environment.
I followed this article http://smartgap.wordpress.com/2012/08/11/customizing-launch-icon-on-eclipsephonegap-application/
My Manifest File :
<?xml version="1.0" encoding="utf-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan"
package="com.mage.edunxt" android:versionName="1.0" android:versionCode="1" android:hardwareAccelerated="true">
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true"
android:resizeable="true"
android:anyDensity="true"
/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.RECORD_VIDEO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:hardwareAccelerated="true"
android:debuggable="true">
<activity android:name="EduNxtQTIPlayer" android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15"/>
</manifest>
Upvotes: 4
Views: 21135
Reputation: 1911
The info provided on the PhoneGap web page explains that, but it may be not so clear at the first glance (link: http://docs.build.phonegap.com/en_US/configuring_icons_and_splash.md.html#_icons).
Simple explanation: just copy your icon to the app root directory and call it icon.png. That's all what you need.
In my case I made sure, that the icon has size 96x96px (bigger somehow didn't work, but could be my fault). And also after upload and rebuild, the app content was not updated - so I needed to repeat upload+rebuild few times.
Upvotes: 0
Reputation: 1857
I also would like to share my answer on this one in case they can't get it to work using the steps provided by previous users.
I can't get mine to work using the steps provided here and I am able to figure it out by using mipmaps. I generated icon sizes using this open source project which is great: Android Asset Studio
I notice now that the generated icons are now placed in mipmap folders not on drawables. I think this what the google want us to do to separate the drawables from icons. Having done this I reference the newly imported mipmap folders using this:
android:icon="@mipmap/ic_launcher"
And here is the folder structure:
res/
mipmap-mdpi/ic_launcher.png (48x48 pixels)
mipmap-hdpi/ic_launcher.png (72x72)
mipmap-xhdpi/ic_launcher.png (96x96)
mipmap-xxhdpi/ic_launcher.png (144x144)
mipmap-xxxhdpi/ic_launcher.png (192x192)
I cleaned and rebuilt the project and I can now see the icon! But theres a catch. It was added on later version of android (v4.3 as stated here link). There is not much documentation on this if this will work on older version of android.
Upvotes: 0
Reputation: 101
Make changes in <project location>\platforms\android\ant-build\res and not <project location>\platforms\android\res
For some people making changes in the latter location may have worked, but having noticed Phonegap copying from \android\res into \android\ant-build\res, I decided to check in there and found a separate set of drawable folders containing the default phonegap icon.
Changing those finally worked.
Since I'm building and running locally and not using Adobe PhoneGap Build, changing icons in <project location>\www\res\icon\android won't work either.
Upvotes: 0
Reputation: 1505
I had to do the following
The clean is really important it seems to keep using the old icons until you clean.
In eclipse Project->Clean
Upvotes: 7
Reputation: 1300
i have been building locally using phonegap CLI. No Eclipse and ran into multiple problems as looking at root folder ( useless for local builds.. Phonegap: how about spewing some notes when building ).
I finally copied individual icon files of different sizes to drawable* folders.
drawable-hdpi drawable-ldpi drawable-mdpi drawable-xhdpi
this wasted LOOOOOOOT of my time.
Upvotes: 2
Reputation: 5108
I got it worked by doing these.
I just put my icon in all the folders inside "project/bin/res"
also.
Then i added the following line in config.xml under "project/res/xml"
.
<icon src="icon.png" />
Now it is working cool.
Upvotes: 5