目录
1.1 安卓release包缺少libflutter.so
1.2 AndroidStudio导入项目后自动变为model,没有Flutter目录
1.3 输入框内容为空时,长按不显示粘贴工具栏
1.4 SWIFT_VERSION '5.0' is unsupported, supported versions are: 3.0, 4.0, 4.2
1.5 复制粘贴面板英文的问题
1.6 调用库的时候报Methods marked with @UiThread must be executed on the main thread.Current thread: XXXX
1.7 用Navigator.of(context).pushNamed(routeName)
如何传递参数
1.1 安卓release包缺少libflutter.so
修改/android/app/build.gradle
文件如下
android{
defaultConfig{
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
buildTypes {
debug {
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
release {
ndk {
abiFilters "armeabi-v7a"
}
}
}
}
1.2 AndroidStudio导入项目后自动变为model,没有Flutter目录
image.png解决方法:
在导入项目时选择下面选项
File-Open-选中你的项目
1.3 输入框内容为空时,长按不显示粘贴工具栏
将输入框中的autoFocus
属性为ture
去掉
1.4 SWIFT_VERSION '5.0' is unsupported, supported versions are: 3.0, 4.0, 4.2
将项目打开为ios项目,然后在文件列面中找到Pods(建议升级xcode即可解决)
1.5 复制粘贴面板英文的问题
在pubspec.yaml
添加国际化支持,然后运行flutter packages get
dependencies:
...
flutter_localizations:
sdk: flutter
找到代码MaterialApp
或者CupertinoApp
或者WidgetsApp
的文件,添加下面代码即可
MaterialApp(
//...
//new
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate
],
supportedLocales:[
Locale('zh',''),
Locale('en','')
],
//new
)
1.6 调用库的时候报Methods marked with @UiThread must be executed on the main thread.Current thread: XXXX
出现该异常的主要原因是Flutter1.7.8
版本添加了线程安全,需要原生在主线程中返回给Flutter
解决方法:
- 库的问题?
到pub库中找到最新的版本,更改最新的版本,然后运行flutter packages get
- 自己写的库问题?
假如:
//Result result flutter的result
new Thread(new Runnable() {
public void run() {
//.....
result.success(null);//这里就会导致异常
}).start();
改为
//Result result flutter的result
new Thread(new Runnable() {
public void run() {
//.....
new Handler().post(new Runnable() {
@Override
public void run() {
result.success(file.getAbsolutePath());
}
});
}).start();
上面是伪代码,不建议这样做,可能会导致内存溢出
1.7 用Navigator.of(context).pushNamed(routeName)
如何传递参数
传递参数
Navigator.of(context).pushNamed(routeName,arguments:{
“name":"我是参数"
})
获取参数
final arguments=ModalRoute.of(context).settings.arguments;
欢迎在评论区留下你的bug问题,在线
修bug写
网友评论