我已经做了一个颤振应用。发布的apk大约为14MB。我搜索了一些方法来缩小这个范围,并发现了以下内容:https://flutter.io/android-release/#enabling-前卫
但我的问题是,我怎样才能知道我在步骤1中使用的所有附加库?是否有任何命令可以了解它们,或者只是我添加到pubspec中的所有依赖项。yaml
?
我需要如何在这个文件/android/app/proguard rules中实现它们。pro
?
如果您使用的是firebase,请参阅使用带有firebase Auth的ProGuard进行颤振构建崩溃
接下来,您需要考虑pubspec.yaml
中的依赖关系您可以立即忽略任何纯Dart包-您只是在寻找插件。在这些插件中,您只对那些利用现有库的插件感兴趣。您可能已经将这些添加到gradle中。这些是你需要防止名字缩短的。
最简单的方法可能只是尝试一下,看看在NoClassDefFoundError
中会弹出什么包名,然后不断地迭代添加它们。
正如雷米所说,你的收获将是微乎其微的,所以它真的值得你这么做。在即将发布的版本中,您应该会看到APK大小的一些改进。
我将把这个答案留在这里,作为任何必须处理这个问题并遇到这个问题的可怜灵魂的补充。
从2021年12月起,用最新的Android SDK、Studio和Frutter版本,如果你尝试做<代码> UpEuthGuor真的它将不起作用,因为它已经过时了。可悲的是,Gradle不会告诉你这些,相反,你会得到这样一个错误:
A problem occurred evaluating project ':app'.
> No signature of method: build_7cqkbrda1q788z3b02yxbvrx9.android() is applicable for argument types: (build_7cqkbrda1q788z3b02yxbvrx9$_run_closure2) values: [build_7cqkbrda1q788z3b02yxbvrx9$_run_closure2@41108b15]
如你所见,这完全是胡言乱语,没有用。秘诀是根本不使用useProGuard
。默认情况下,Flutter设置为使用R8,现在在Android系统上处理缩小。
这里有一篇关于这个的so帖子供参考: Gradle: DSL元素“useProGuard”已经过时,很快就会被删除
首先,我们将在构建文件中启用收缩和模糊处理。找到位于/android/app//code>文件夹内的build.gradle
文件,并以粗体添加行
android {
...
buildTypes {
release {
signingConfig signingConfigs.debug
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
接下来,我们将创建一个将保留整个Flutter包装器代码的配置。创建/android/app/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.** { *; }
我只是按照这个页面的说明做了一个Flutter app,我在谷歌上搜索了如何更改应用程序的名称,找到了这个答案。但是我不能从清单文件中更改应用程序的名称。最初是。我将其更改为,它给出了错误 如何重置此错误并更改名称?
我正试图从Flatter网站上消化以下信息。 Flutter如何在Android上运行我的代码? 引擎的C和C代码是用Android的NDK编译的。Dart代码(SDK和您的)是提前(AOT)编译到本机、ARM和x86库中的。这些库包含在一个“runner”Android项目中,整个项目都内置在一个APK中。启动时,应用程序将加载颤振库。任何呈现、输入或事件处理等都被委托给编译的flatter和应
我如何以编程方式关闭一个Flutter应用程序?我尝试弹出唯一的屏幕,但结果是黑屏。
将颤振集成到主机应用程序(docs)时,有几种方法可以实现,其中一种(最简单的)方法是通过颤振活动类在新活动中打开颤振。这样地: 传统上,对于Flutter侧的Android风格窗口,我们创建带有后退按钮的AppBar。 此AppBar后退按钮和Android系统后退按钮的行为必须相同:按下后退按钮时,前台活动必须关闭(完成)。 目前系统后退按钮确实关闭了,但如何从flutters AppBar后
像这样的东西 如何检查flutter应用程序是否运行在调试或发布模式?