Flutter image_cropper plugin error: "You need to use a Theme.AppCompat > theme (or descendant) with this activity"
Flutter image_cropper plugin error: "You need to use a Theme.AppCompat > theme (or descendant) with this activity"
我正在使用 Flutter 的 image_cropper plugin 并且它抛出了关于 AppCompat 的错误:
java.lang.RuntimeException: Unable to start activity
ComponentInfo{uk.co.pottertour.meloan/com.yalantis.ucrop.UCropActivity}:
java.lang.IllegalStateException: You need to use a Theme.AppCompat
theme (or descendant) with this activity.
发生的事情是:
我从我的个人资料编辑屏幕启动相机,在用户拍照后,它应该启动裁剪 activity,但它抛出该错误并使我的整个应用程序崩溃。
最新的 image_cropper 插件升级 2.0.3.
已经开始出现这种情况
Future getImage(ImageSource _imageSource) async {
final pickedFile =
await imagePicker.pickImage(source: _imageSource, imageQuality: 85);
if(pickedFile == null) return;
print(LOG + "getImage file from camera path: ${pickedFile.path}");
_cropImage(pickedFile.path);
setState(() {
_image = File(pickedFile.path);
});
imageChanged = true;
}
Future<Null> _cropImage(String imageFilePath) async {
final croppedFile = await ImageCropper().cropImage(
compressQuality: 80,
sourcePath: imageFilePath,
maxWidth: 428,
maxHeight: 428,
aspectRatioPresets: Platform.isAndroid
? [
CropAspectRatioPreset.square,
]
: [
CropAspectRatioPreset.square,
],
uiSettings: [
AndroidUiSettings(
toolbarTitle: 'Cropper',
toolbarColor: Colors.deepOrange,
toolbarWidgetColor: Colors.white,
initAspectRatio: CropAspectRatioPreset.original,
lockAspectRatio: true),
IOSUiSettings(
title: 'Cropper',
)
]);
if (croppedFile != null) {
setState(() {
_image = File(croppedFile.path);
});
}
}
我调整了 cropper 代码,以修改插件自述文件中建议的格式,但无济于事。我想知道在相机完成后屏幕是否需要重建,但由于相机和 _cropImage 方法是异步的,它没有及时,所以 Flutter 没有从 main.dart
.[= 的根小部件继承的 appCompat。 14=]
要使用该插件,请将其添加到 AndroidManifest.xml。特别注意最后一行。
<activity
android:name="com.yalantis.ucrop.UCropActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
我正在使用 Flutter 的 image_cropper plugin 并且它抛出了关于 AppCompat 的错误:
java.lang.RuntimeException: Unable to start activity ComponentInfo{uk.co.pottertour.meloan/com.yalantis.ucrop.UCropActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
发生的事情是: 我从我的个人资料编辑屏幕启动相机,在用户拍照后,它应该启动裁剪 activity,但它抛出该错误并使我的整个应用程序崩溃。
最新的 image_cropper 插件升级 2.0.3.
已经开始出现这种情况 Future getImage(ImageSource _imageSource) async {
final pickedFile =
await imagePicker.pickImage(source: _imageSource, imageQuality: 85);
if(pickedFile == null) return;
print(LOG + "getImage file from camera path: ${pickedFile.path}");
_cropImage(pickedFile.path);
setState(() {
_image = File(pickedFile.path);
});
imageChanged = true;
}
Future<Null> _cropImage(String imageFilePath) async {
final croppedFile = await ImageCropper().cropImage(
compressQuality: 80,
sourcePath: imageFilePath,
maxWidth: 428,
maxHeight: 428,
aspectRatioPresets: Platform.isAndroid
? [
CropAspectRatioPreset.square,
]
: [
CropAspectRatioPreset.square,
],
uiSettings: [
AndroidUiSettings(
toolbarTitle: 'Cropper',
toolbarColor: Colors.deepOrange,
toolbarWidgetColor: Colors.white,
initAspectRatio: CropAspectRatioPreset.original,
lockAspectRatio: true),
IOSUiSettings(
title: 'Cropper',
)
]);
if (croppedFile != null) {
setState(() {
_image = File(croppedFile.path);
});
}
}
我调整了 cropper 代码,以修改插件自述文件中建议的格式,但无济于事。我想知道在相机完成后屏幕是否需要重建,但由于相机和 _cropImage 方法是异步的,它没有及时,所以 Flutter 没有从 main.dart
.[= 的根小部件继承的 appCompat。 14=]
要使用该插件,请将其添加到 AndroidManifest.xml。特别注意最后一行。
<activity
android:name="com.yalantis.ucrop.UCropActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>