Мой инструмент выбора изображений работает нормально в эмуляторе 7 в режиме отладки на моем реальном устройстве, но не работает после экспорта приложения на моем реальном устройстве.
Я использую этот плагин
В чем проблема, смотрите в этом видео: Видео на Google Диске: < / а>
В отладке, где все работает нормально:
видео на диске Google, так как вы можете видеть все, отлично работает в режиме отладки
Это моя функция выбора изображений
File userAvatar;
File get getUserAvatar => userAvatar;
Future pickUserAvatar(BuildContext context, ImageSource source) async {
final pickedUserAvatar = await picker.getImage(source: source);
BotToast.showText(text: 'my picked name is $source');
pickedUserAvatar == null
? BotToast.showText(text: 'Select Image')
: userAvatar = File(pickedUserAvatar.path);
userAvatar != null
? Provider.of<LandingService>(context, listen: false)
.showUserAvatar(context)
: BotToast.showText(text: 'Image Upload Error');
notifyListeners();
}
Это мой пользователь шоу Аватар Функция Где я показываю после изображения Успешно выбрано
showUserAvatar(BuildContext context) {
return showModalBottomSheet(
context: context,
builder: (context) {
return Container(
height: MediaQuery.of(context).size.height * 0.45,
width: MediaQuery.of(context).size.width,
child: SingleChildScrollView(
child: Column(
children: [
Padding(
padding: EdgeInsets.symmetric(horizontal: 150.0),
child: Divider(
thickness: 4.0,
color: constantColors.whiteColor,
),
),
CircleAvatar(
radius: 80.0,
backgroundColor: constantColors.transperant,
backgroundImage: FileImage(
Provider.of<LandingUtils>(context, listen: false)
.userAvatar,
),
),
Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
MaterialButton(
child: Text(
'Reselect',
style: TextStyle(
color: constantColors.whiteColor,
fontWeight: FontWeight.bold,
decoration: TextDecoration.underline,
decorationColor: constantColors.whiteColor,
),
),
onPressed: () {
Provider.of<LandingUtils>(context, listen: false)
.pickUserAvatar(context, ImageSource.gallery);
},
),
MaterialButton(
color: constantColors.blueColor,
child: Text(
'Confirm Image',
style: TextStyle(
color: constantColors.whiteColor,
fontWeight: FontWeight.bold,
),
),
onPressed: () {
Provider.of<FirebasessOperations>(context,
listen: false)
.uploadUserAvatar(context)
.whenComplete(() => {
signUpSheet(context),
});
},
)
],
),
)
],
),
),
decoration: BoxDecoration(
color: constantColors.blueGreyColor,
borderRadius: BorderRadius.circular(15.0),
),
);
});
}
Я также добавляю эту строку в свой манифест Android
android:requestLegacyExternalStorage="true"