dart Flutter-未处理异常:无法在通道上建立连接,

jbose2ul  于 2022-12-06  发布在  Flutter
关注(0)|答案(2)|浏览(171)

我正在尝试在我的flutter项目中使用配置单元数据库。为了使用配置单元数据库,我将不得不使用path_provider包。我也安装了它。但当我再次运行应用程序或重新启动时,它既没有运行,也没有重新启动,并出现此错误。

Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null)

E/flutter (15905): #0
PathProviderApi.getApplicationDocumentsPath
package:path_provider_android/messages.g.dart:9

Android清单文件权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"
   />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
  />

我的代码

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  final document = await getApplicationDocumentsDirectory(); // ERROR AT THIS LINE
  Hive.init(document.path);
  runApp(const MyApp());
}
ut6juiuv

ut6juiuv1#

Actually, I didn't put any uses-permission in Maneifest file to use Hive. Instead of Hive.init(), I would like to suggest to use Hive.initFlutter(). But without

final document = await getApplicationDocumentsDirectory();

inside initFlutter() method, these actions are already done by itself.

Future<void> main() async {
 WidgetsFlutterBinding.ensureInitialized();
 Hive.initFlutter();
 runApp(const MyApp());
}
bis0qfac

bis0qfac2#

AndroidManifest.xml文件中添加权限就像定义您可以在应用中使用的所有权限。但要实际使用这些权限,您需要要求用户允许这些权限,就像使用内部/外部存储一样。一种方法是使用permission_handler包。

相关问题