Just wondering if anyone been able to set adaptive icons on Cordova for Android Oreo? I\'m using the android 6.4.0 and my square icon shrinks to fit the circle. I just want
WARNING: Don't use this answer. This is now supported out of the box as of Cordova 9. See https://stackoverflow.com/a/55169307/2947592
So while the above answers helped me get to an answer, they are either dated or incomplete. So, to help anyone moving forward, this is a complete answer with all the ins and outs I could think of.
Step 1: Create the icons
You'll want to do this using the Image Asset Studio (https://developer.android.com/studio/write/image-asset-studio). There a number of guides on doing this.
Step 2: Move the icons to your ionic/cordova project
Copy the entire res
folder into your project. The below example is for ionic v1.
cp -a AndroidStudioProjects/MyApplication4/app/src/main/res MyIonicProject/myapp/resources/android/adaptiveicon
Step 3: Edit config.xml
First, to use the icons (this is missing from other answers), you need to alter the top widget
line. You'll want to add xmlns:android="schemas.android.com/apk/res/android"
to it, so it looks like the below. This allows the system to change the AndroidMenifest.xml
file.
Next, you'll need to adjust the platform section of your config.xml
.
First remove any instances of
from the
section.
Then, Add in the alteration to the Android Manifest
file:
And lastly, for every file in the new resources/android/adaptiveicon
folder, you will need to add a line like this:
Make sure every file is represented! Your final platform
section will probably look like this (this example is for when a PNG is used for both foreground and background):
Step 4: Play it safe, clean the Android platform
Run the following commands to clean the platform.
cd myapp
rm -rf platforms/android
ionic cordova prepare
For good measure, fix the bugs with the Android emulator start-up in ionic:
wget https://raw.githubusercontent.com/gegenokitaro/cordova-android/8d497784ac4a40a9689e616cd486c4ed07d3e063/bin/templates/cordova/lib/emulator.js -O platforms/android/cordova/lib/emulator.js
Step 5: Build!
Build:
ionic cordova build android
Or Emulate:
ionic cordova emulate android --consolelogs --serverlogs --target "Android8"