切换导航
{{systemName}}
{{ info.Title }}
{{info.Title}}
{{ menu.Title }}
{{menu.Title}}
登录
|
退出
搜索
Flutter报错汇总
作者:ych
### "Build failed due to use of deprecated Android v1 embedding" when building Flutter app #### 问题 ``` to migrate your project. You may also pass the --ignore-deprecation flag to ignore this check and continue with the deprecated v1 embedding. However, the v1 Android embedding will be removed in future versions of Flutter. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ The detected reason was: C:\Users\ALI HASSAN\OneDrive\Desktop\New folder\arcore_app\example\android\app\src\main\AndroidManifest.xml uses `android:name="io.flutter.app.FutterApplication"` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Build failed due to use of deprecated Android v1 embedding. ``` #### 问题来源 这只是 Full-Flutter 应用程序迁移的第 3 步[旧版迁移导致](https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects#full-flutter-app-migration "迁移导致") #### 解决方案 您需要更改`android\app\src\main\AndroidManifest.xml`文件 从: ```
... ``` Flutter 工具使用它来生成 GeneratedPluginRegistrant.java。 ### Name non-constant identifiers using lowerCamelCase `Dart SDK:>= 2.0.0 • (Linter v0.1.1)` 请使用`lowerCamelCase`命名非常量标识符。 类成员、顶级定义、变量、参数、命名参数和命名构造函数应将除第一个单词外的每个单词的首字母大写,并且不使用分隔符。 #### 'grep' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 出现问题时的命令: ``` adb shell logcat | grep START ``` 问题内容:`grep`不是内部或外部命令,也不是可运行的程序 或批处理文件。 解决方法:将`logcat | grep START`用双引号引起来,即`adb shell “logcat | grep START”`。 #### 播放器异常闪退 [Flutter打包release APK闪退百分百解决方法](https://www.jiyuwu.com/Article/ShowArticle/653 "Flutter打包release APK闪退百分百解决方法") 的方法找到问题日志 ``` 01-07 12:03:12.429 2226 2226 W FloatButtonHelper: handleStateChanged pkgName: com.example.flutter_fullscreen_vlc_player_demo mSupportFloatApp: true 01-07 12:03:12.429 2226 2226 W FloatButtonHelper: !sPkgList.contains: com.wandoujia.phoenix2 01-07 12:03:12.453 3902 4056 W Settings: Setting airplane_mode_on has moved from android.provider.Settings.System to android.provider.Settings.Global, returning read-only value. 01-07 12:03:12.496 10994 10994 E VLC/JNI/VLCObject: FindClass(org/videolan/libvlc/interfaces/IMedia$Track) failed 01-07 12:03:12.497 10994 10994 E VLC/LibVLC: Can't load vlcjni library: java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad in "/data/app/com.example.flutter_fullscreen_vlc_player_demo-1/lib/arm64/libvlcjni.so" 01-07 12:03:12.508 3902 3902 E linp : #AutoReinflateContainer onConfigurationChanged but nothing changed! 01-07 12:03:12.540 742 742 I Zygote : Process 10994 exited cleanly (1) 01-07 12:03:12.545 1526 1788 W InputDispatcher: channel '7a75a16 com.example.flutter_fullscreen_vlc_player_demo/com.example.flutter_fullscreen_vlc_player_demo.MainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9 01-07 12:03:12.545 1526 1788 E InputDispatcher: channel '7a75a16 com.example.flutter_fullscreen_vlc_player_demo/com.example.flutter_fullscreen_vlc_player_demo.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed! 01-07 12:03:12.571 1526 3856 W InputDispatcher: Attempted to unregister already unregistered input channel '7a75a16 com.example.flutter_fullscreen_vlc_player_demo/com.example.flutter_fullscreen_vlc_player_demo.MainActivity (server)' 01-07 12:03:12.571 1526 3856 W WindowManager: Force-removing child win Window{ad27627 u0 SurfaceView - com.example.flutter_fullscreen_vlc_player_demo/com.example.flutter_fullscreen_vlc_player_demo.MainActivity} from container Window{7a75a16 u0 com.example.flutter_fullscreen_vlc_player_demo/com.example.flutter_fullscreen_vlc_player_demo.MainActivity} 01-07 12:03:12.574 1526 3860 W ActivityManager: Force removing ActivityRecord{1853a42 u0 com.example.flutter_fullscreen_vlc_player_demo/.MainActivity t478}: app died, no saved state 01-07 12:03:12.576 627 627 W SurfaceFlinger: couldn't log to binary event log: overflow. 01-07 12:03:12.583 1526 2052 W WindowManager: Failed looking up window 01-07 12:03:12.583 1526 2052 W WindowManager: java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@33d016d does not exist 01-07 12:03:12.583 1526 2052 W WindowManager: at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:9642) 01-07 12:03:12.583 1526 2052 W WindowManager: at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:9633) 01-07 12:03:12.583 1526 2052 W WindowManager: at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1928) 01-07 12:03:12.583 1526 2052 W WindowManager: at android.os.BinderProxy.sendDeathNotice(Binder.java:688) 01-07 12:03:12.592 627 627 W SurfaceFlinger: couldn't log to binary event log: overflow. 01-07 12:03:12.623 3902 3902 W View : requestLayout() improperly called by android.view.View{282640b V.ED..... ......ID 0,0-2016,768 #7f140344 app:id/quick_settings_container_bg} during layout: running second layout pass ``` Android Can't load vlcjni library (libVLC) 如果对 进行模糊处理,则本机代码无法找到必要的类和方法,因此它返回 .你只需要排除 from ,在文件中添加此行 ``` -keep class org.videolan.libvlc.** { *; } ``` [签名步骤](https://ask.dcloud.net.cn/article/35777 "签名步骤") 生成jks签名 ``` D:\sdk\jdk1.8.0_251\jre\bin>keytool -genkey -v -keystore /D:/key.jks -keyalg RSA -keysize 2048 -validity 36500 -alias key 输入密钥库口令: 再次输入新口令: 您的名字与姓氏是什么? [Unknown]: ych 您的组织单位名称是什么? [Unknown]: jiyuwu 您的组织名称是什么? [Unknown]: jiyuwu 您所在的城市或区域名称是什么? [Unknown]: dy 您所在的省/市/自治区名称是什么? [Unknown]: sd 该单位的双字母国家/地区代码是什么? [Unknown]: cn CN=ych, OU=jiyuwu, O=jiyuwu, L=dy, ST=sd, C=cn是否正确? [否]: y 输入
的密钥口令 (如果和密钥库口令相同, 按回车): Warning: JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore test.keystore -destkeystore test.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。 ``` 在D盘生成的文件`key.jks`拷贝到`\android\app\`下 android文件下创建`key.properties` ``` storePassword=123456 keyPassword=123456 keyAlias=key storeFile=key.jks ``` `\android\app\src\`下创建`proguard-rules.pro` ``` #Flutter Wrapper -keep class io.flutter.app.** { *; } -keep class io.flutter.plugin.** { *; } -keep class io.flutter.util.** { *; } -keep class io.flutter.view.** { *; } -keep class io.flutter.** { *; } -keep class io.flutter.plugins.** { *; } -keep class org.videolan.libvlc.** { *; } ``` `\android\app\src\build.gradle`下添加或修改为如下内容 ``` def keystorePropertiesFile = rootProject.file("key.properties") def keystoreProperties = new Properties() if (keystorePropertiesFile.exists()){ keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) } signingConfigs { release { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile file(keystoreProperties['storeFile']) storePassword keystoreProperties['storePassword'] } } buildTypes { release { signingConfig signingConfigs.release //使用正式release配置 minifyEnabled true //是否压缩 useProguard true //打开混淆 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //配置混淆文件 } } ``` 之后执行打包或在线运行包看看 ``` # 打包 flutter build apk # 在线打包运行调试 flutter run --release ``` ##### 参考 [打包步骤](https://blog.csdn.net/wanzhuanit/article/details/104414751/ "打包步骤")
相关推荐
Flutter打包release APK闪退百分百解决方法
flutter How to solve SocketException: Failed host lookup
flutter报错 Error: Connection refused
评论区
先去登录
版权所有:机遇屋在线 Copyright © 2021-2025 jiyuwu Co., Ltd.
鲁ICP备16042261号-1