我正在尝试运行我的Flutter应用程序。它以前工作得很好,我不知道发生了什么,但现在它就是不能启动。
当我尝试从Android Studio启动它时,我得到:
Crash report sent (report ID: [crash id])
Oops; flutter has exited unexpectedly.
Crash report written to /home/my_project_path/flutter_07.log;
please let us know at https://github.com/flutter/flutter/issues.
当我尝试用flutter run
启动它时,我得到了同样的结果。
flutter doctor
运行得很好,我没有得到任何错误:
[✓] Flutter (Channel stable, v1.12.13+hotfix.9, on Linux, locale fr_FR.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Android Studio (version 3.6)
[✓] Connected device (1 available)
• No issues found!
flutter_07.log中给出的主要异常是:
FileSystemException: FileSystemException: Cannot open file, path = '/home/revan/Programs/flutter/.pub-cache/hosted/pub.dartlang.org/async-2.4.0/pubspec.yaml' (OS Error: Permission denied, errno = 13)
我尝试sudo chmod 777 /home/revan/Programs/flutter/.pub-cache/hosted/pub.dartlang.org/async-2.4.0/pubspec.yaml
,它似乎工作,因为当我重新运行flutter run时,它是另一个pubspec.yaml
文件在.pub_cache/hosted/pub.dartlang.org
的库中的一个缺乏权限。
我想我可以手动chmod
这个目录中所有341个库的pubspec.yaml
,但是这会花费很长时间,我想这不是一个正确的方法。
有什么想法吗?
编辑:好的,所以我启动了以下命令:
sudo find **/pubspec.yaml -type f -exec chmod 644 {} \;
它似乎起作用了,因为现在我有另一个错误:
FileSystemException: FileSystemException: Creation failed, path = 'my_project_path/.dart_tool/flutter_build' (OS Error: Permission denied, errno = 13)
发布于 2020-05-16 17:49:01
因此,在阅读日志后,我还发现了一个关于ADB服务器没有使用ADB客户端版本的错误。使用命令which adb
,我发现我使用的是与${ANDROID_SDK_PATH}/platform-tools/adb
中不同的adb。
我复制了${ANDROID_SDK_PATH}/platform-tools/adb
而不是/usr/bin/adb
然后,问题转化为Android SDK错误。日志显示我使用的是usr/lib/android-sdk/
,但我之前使用的Android SDK是~/Program
版本。我将/usr/lib/android-sdk/
中的每个目录替换为我的~/Programs
中的目录(build-tools
;licenses
;platforms
;platform-tools
;tools
)。
现在它起作用了;但我意识到我不应该像那样修复它。复制系统二进制文件目录中的文件有点肮脏和危险。
如果你有更好的想法,请随时为下一个有这个问题的人回答这个问题。
https://stackoverflow.com/questions/61834473
复制相似问题