Adaptive Icon not working

喜夏-厌秋 提交于 2019-12-03 16:30:07

问题


manifest:

<application
    android:name="..."
    android:allowBackup="false"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/MyTheme"
    tools:replace="icon,label,theme,name,allowBackup">

under the folder mipmap-anydpi-v26 I have defined ic_launcher.xml:

<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
   <background android:drawable="@color/white"/>
   <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>

here is my folder structure :

build.gradle:

compileSdkVersion = 26
buildToolsVersion = "25.0.2"
supportLibVersion = "25.3.1"
targetSdkVersion = 25
minSdkVersion = 18

AND, I'm using android studio 3.0

but the end result is that I get a default android icon instead of the one I provided.

I've also tried putting the foreground png in all of the density folders (mipmap-xhdpi, etc), although I used the same png for all when I did this just for testing


回答1:


Adaptive icon requied API 26 so you need to update your buildtools to at least 26.0.0 version




回答2:


I too have faced the same issue, here is how I have fixed this issue

  1. Right click on resource -> New -> ImageAsset

  2. Choose the ic_launcher_background icon and ic_launcher_foreground as shown in below screen

  1. Android studio creates an ic_launcher.xml under resource mipmap (anydpi-v26)

     <?xml version="1.0" encoding="utf-8"?>
    <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
        <background android:drawable="@mipmap/ic_launcher_background"/>
        <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
    </adaptive-icon>
    
  2. Now inside the Manifest.XML, declare the icon and round icon something shown in like below

    <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    
    
                    .......</application>
    

    Yes that's all and Run your app on any device it appears




回答3:


ic_launcher.xml should be like this

<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon
    xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@color/white"/>
    <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>



回答4:


I tried to debug it using an <ImageView>. When I did so, I got a backtrace ending with:

Caused by: java.lang.IllegalArgumentException: Path string cannot be empty.

Turns out my ic_launcher_foreground.xml had some <path> elements with empty android:pathData attributes.

Deleting those empty <path>s made the icon work!




回答5:


I had issues getting my adaptive icon to display. Turns out I had done nothing wrong. It started working after I did a 'Clean Project' in Android Studio.



来源:https://stackoverflow.com/questions/46816914/adaptive-icon-not-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!