开始在我的 flutter 应用程序上实现相机插件时出现以下错误:
[VERBOSE-2:dart_error.cc(16)] Unhandled exception:
MissingPluginException(No implementation found for method init on channel plugins.flutter.io/camera)
#0 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:153:7)
<asynchronous suspension>
#1 _channel (package:camera/camera.dart:7:5)
#2 _channel (package:camera/camera.dart:6:21)
#3 availableCameras (package:camera/camera.dart:42:41)
<asynchronous suspension>
#4 main (file:///Users/waynerumble/Desktop/scott_and_viki/lib/main.dart:10:19)
<asynchronous suspension>
#5 _startIsolate.<anonymous closure> (dart:isolate/runtime/libisolate_patch.dart:279:19)
#6 _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:165:12)
[VERBOSE-2:dart_error.cc(16)] Unhandled exception:
MissingPluginException(No implementation found for method list on channel plugins.flutter.io/camera)
#0 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:153:7)
<asynchronous suspension>
#1 availableCameras (package:camera/camera.dart:42:50)
<asynchronous suspension>
#2 main (file:///Users/waynerumble/Desktop/scott_and_viki/lib/main.dart:10:19)
<asynchronous suspension>
#3 _startIsolate.<anonymous closure> (dart:isolate/runtime/libisolate_patch.dart:279:19)
#4 _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:165:12)
Run Code Online (Sandbox Code Playgroud)
直到我开始使用该插件本身,也就是说,如果我更换,不会发生错误Future<null> main() etc与void main() => runApp(new App());应用程序运行正常。我已经按照提供的链接中的安装说明进行操作,并尝试粘贴所有示例代码来代替我的代码,但仍然出现错误
我的 main.dart:
import 'package:flutter/material.dart';
import 'Localisations.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'dart:async';
import 'package:camera/camera.dart';
List<CameraDescription> cameras;
Future<Null> main() async {
cameras = await availableCameras();
runApp(new App());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
var statusBarHeight = MediaQuery.of(context).padding.top;
var titleText = new Text(Localize.of(context).appTitle,
textAlign: TextAlign.center,
style: new TextStyle(fontFamily: 'CallingAngelsPersonalUse',
fontSize: 50.0,
color: Colors.black)
);
var backgroundImage = new BoxDecoration(
image: new DecorationImage(
image: new AssetImage('assets/background.png'),
fit: BoxFit.cover,
),
);
var mainContainer = new Container(
padding: EdgeInsets.only(top: statusBarHeight),
height: double.infinity,
width: double.infinity,
decoration: backgroundImage,
child: new Column(
children: <Widget>[
new Container(
margin: EdgeInsets.only(top: 10.0),
child: titleText
)
],
),
);
return new Scaffold(
body: mainContainer,
);
}
}
class App extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
onGenerateTitle: (BuildContext context) => Localize.of(context).appTitle,
localizationsDelegates: [
const LocalizeDelegate(),
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [
const Locale('en', '')
],
home: new MyApp(),
);
}
}
Run Code Online (Sandbox Code Playgroud)
我的 pubspec.yml:
dependencies:
flutter:
sdk: flutter
camera: ^0.1.2
path_provider: ^0.4.0
flutter_localizations:
sdk: flutter
Run Code Online (Sandbox Code Playgroud)
这是我的第一个真正的 Flutter 应用程序,因此我们将不胜感激。
谢谢
小智 5
首先检查您的 app.build minSdkVersion。确保 minSdkVersion 为 21。
minSdkVersion 21
Run Code Online (Sandbox Code Playgroud)
这里的代码示例。
List<CameraDescription> cameras = [];
main() async{
WidgetsFlutterBinding.ensureInitialized();
try {
cameras = await availableCameras();
} on CameraException catch (e) {
logError(e.code, e.description);
}
runApp(MyApp());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4424 次 |
| 最近记录: |