Hi guys, i'm using flutter_local_notifications 1.4.4 for Schedule a notification to be shown daily at a specified time (even when my app is closed), it works good.
The fact is when I used my phone as emulator, the notification works well, the color image appears (Image1). But when I generate apk and install in my phone the notification icon doesn't appear (Image 2) you can see a small grey box instead. I try solution multiple ways solutions and I didn't get it. How can i do my apk show the icon in notification?
An aditional question, why AndroidInitializationSettings('app_icon'); doen't accept for example : assets/perfil3.png

I attatch my :
AndroidManifest.xml File:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.estilos">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application
android:name="io.flutter.app.FlutterApplication"
android:label="Alerta Temprana"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<receiver android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationReceiver" />
<receiver android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"></action>
</intent-filter>
</receiver>
<meta-data
android:name="flutterEmbedding"
android:value="2" />
</application>
</manifest>
proguard-rules.pro
## Flutter wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
-keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
-dontwarn io.flutter.embedding.**
## Gson rules
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature
# For using GSON @Expose annotation
-keepattributes *Annotation*
# Gson specific classes
-dontwarn sun.misc.**
#-keep class com.google.gson.stream.** { *; }
# Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class * implements com.google.gson.TypeAdapter
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer
# Prevent R8 from leaving Data object members always null
-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
}
## flutter_local_notification plugin rules
-keep class com.dexterous.** { *; }
buildgradle modification
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
my code and how initialize my code
import 'package:estilos/src/bloc/provider.dart';
import 'package:estilos/src/pages/splashScreeen_page.dart';
import 'package:estilos/src/routes/routes.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
void main(){
return runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
@override
void initState() {
super.initState();
setupNotificationPlugin();
}
void setupNotificationPlugin() async{
var initializationSettingsAndroid = AndroidInitializationSettings('app_icon');
var initializationSettingsIOS = IOSInitializationSettings(
requestSoundPermission: false,
requestBadgePermission: false,
requestAlertPermission: false,
onDidReceiveLocalNotification: onDidReceiveLocalNotification,
);
var initializationSettings = InitializationSettings(initializationSettingsAndroid, initializationSettingsIOS);
await flutterLocalNotificationsPlugin.initialize(initializationSettings,onSelectNotification: onSelectNotification).then((init){
setupNotification();
});
}
Future onSelectNotification(String payload) async {
if (payload != null) {
debugPrint('notification payload: ' + payload);
}
await Navigator.push(context,MaterialPageRoute(builder: (context) => SplashScreen()),);
}
Future onDidReceiveLocalNotification(int id, String title, String body, String payload) async {
// display a dialog with the notification details, tap ok to go to another page
showDialog(
context: context,
builder: (BuildContext context) => AlertDialog(
content: Text('Llenado de Cuestionario'),
actions: <Widget>[
FlatButton(
onPressed: (){Navigator.of(context).pop();},
child: Text('OK'))
],
),
);
}
void setupNotification() async{
var time = Time(18,30,0);
var androidPlatformChannelSpecifics = AndroidNotificationDetails(
'repeatDailyAtTime channel id',
'repeatDailyAtTime channel name',
'repeatDailyAtTime description');
var iOSPlatformChannelSpecifics = IOSNotificationDetails();
var platformChannelSpecifics = NotificationDetails(androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
await flutterLocalNotificationsPlugin.showDailyAtTime(
0,
'Registra tus síntomas',
'Llenado de cuestionario',
time,
platformChannelSpecifics);
}
@override
Widget build(BuildContext context) {
return Provider(
child: MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Material App',
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: [
const Locale('en'), // English
const Locale('es'), // español
const Locale.fromSubtags(languageCode: 'zh'), // Chinese *See Advanced Locales below*
],
initialRoute: 'splashScreen',
routes:getApplicationRoutes(),
theme: ThemeData(
primaryColor: Colors.deepPurpleAccent,
),
),
);
}
}
and my res file pic where i add app_icon.png to compile code in order to it launch error

Hi guys, i'm using flutter_local_notifications 1.4.4 for Schedule a notification to be shown daily at a specified time (even when my app is closed), it works good.
The fact is when I used my phone as emulator, the notification works well, the color image appears (Image1). But when I generate apk and install in my phone the notification icon doesn't appear (Image 2) you can see a small grey box instead. I try solution multiple ways solutions and I didn't get it. How can i do my apk show the icon in notification?
An aditional question, why AndroidInitializationSettings('app_icon'); doen't accept for example : assets/perfil3.png
I attatch my :
AndroidManifest.xml File:
proguard-rules.pro
buildgradle modification
my code and how initialize my code
and my res file pic where i add app_icon.png to compile code in order to it launch error
