Android Gradle插件更新到3.0后应用程序图标不显示
我想将我的Gradle Android插件从2.3.3升级到3.0.1。我可以修复以下所有错误。我现在的问题是,安卓牛轧糖(24)和安卓棉花糖(23)应用程序的图标被替换为默认的机器人图标 你能帮我找到问题的原因吗。以前的图标显示了,我看不出现在不显示的逻辑原因 我尝试了所有的建议,但都没有成功 这是我的清单文件:Android Gradle插件更新到3.0后应用程序图标不显示,android,android-studio,android-gradle-plugin,aapt2,Android,Android Studio,Android Gradle Plugin,Aapt2,我想将我的Gradle Android插件从2.3.3升级到3.0.1。我可以修复以下所有错误。我现在的问题是,安卓牛轧糖(24)和安卓棉花糖(23)应用程序的图标被替换为默认的机器人图标 你能帮我找到问题的原因吗。以前的图标显示了,我看不出现在不显示的逻辑原因 我尝试了所有的建议,但都没有成功 这是我的清单文件: Android系统将永远不会显示应用程序的图标,除非您这样做 像您在这里一样使用->tools:replace=“android:icon,…”将替换高优先级清单中的图标,并将图
Android系统将永远不会显示应用程序的图标,除非您这样做
像您在这里一样使用->
tools:replace=“android:icon,…”
将替换高优先级清单中的图标,并将图标保留在低优先级清单中。我发现了这个问题。“Android插件3.0.0默认启用AAPT2”,如中所述。看起来此更改会导致资源出现问题
为了修复应用程序的图标,我必须通过在gradle.properties
文件中添加android.enableApt2=false
来禁用Aapt2的使用
注意:当我使用相同的gradle设置创建新应用程序时,我无法重现该问题。我也为此浪费了大约2个小时。蛮力解决方案是创建一个独立的项目并复制我的资产。从那里,我发现了解决方案: Android Studio现在默认为mipmap-anydpi-v26。以前我只有mipmap anydpi,它在将gradle更新为3.0+之前工作
希望这会有所帮助。您是否根据“ic_launcher_round”这个值检查了可用的资源?我更新了我的android studio,没有您的问题,我认为您应该清理您的项目。@AbdulWaheed我检查了图标,它们是我的应用程序图标,正如预期的那样。@salman清理没有帮助。我尝试过很多次。如果有任何关于marshmallow或naugat的特定文件夹用于mipmap图像,请检查是否有所需图像,以及是否有所需图像。在清单合并期间,需要“替换”来解决冲突。这里解释了问题:@MarioKutlev如果您在子项目(ic_launcher)中有一个子资源与您在依赖项中实现的子资源同名,则可能会出现该问题。一个随机的解决方案是重命名你的发射器图标。救了我的命,谢谢!Android Studio 4.1仍然存在这个“错误”。
<!-- Permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
...
<application
android:name="...Application"
android:allowBackup="false"
android:allowTaskReparenting="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/application"
android:largeHeap="true"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/Theme.MyTheme"
tools:replace="android:icon,theme,label,allowBackup">
<uses-library android:name="com.google.android.maps" />
<activity
android:name="...SplashActivity"
android:label="@string/application"
android:theme="@style/Theme.Splash">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
...
</application>
buildscript {
ext.kotlinVersion = '1.2.10'
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.google.gms:google-services:3.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
}
}
allprojects {
ext {
androidApplicationId = 'myapp.android'
androidVersionCode = 1
androidVersionName = "1.0"
testInstrumentationRunner = "android.support.test.runner.AndroidJUnitRunner"
}
repositories {
maven { url "https://maven.google.com" }
}
}