flutter打包 和 flutter release apk 的网络问题
·
flutter打包 和 flutter release apk 的网络问题
事情的起因是我想在github上提供自己的应用安装包,可是试了试release打包后发现网络请求相关功能无法使用
但是明明虚拟机和真机在debug下都能正常使用的
问AI也没有解决,后来网上看到,需要在AndroidManifest.xml文件添加网络权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
重新打包以后确实解决了
细节
在flutter的android目录下有android\app\src\profile\AndroidManifest.xml
这个文件和android/src/main/AndroidManifest.xml
两个AndroidManifest.xml文件,在profile下的AndroidManifest.xml文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
就只有这一点点内容,上面的英文大概是开发时需要开启 INTERNET 权限
这两个都是 Flutter 项目中 Android 模块的 权限 / 应用配置文件,核心区别是 适用的编译模式不同(对应 Flutter 的 Debug/Profile/Release 三种模式)
这三种模式对代码的严格程度逐级递增,这就是为啥debug模式下可以使用的网络权限在release下要额外配置才能使用,
这样可以保证程序运行的安全和效率的最大化(在debug模式下的app进入时都会有一段白屏,但是release的app就非常快,几乎看不见白屏)。
以后在打包release时要多注意配置权限和代码混淆之类的地方,避免问题再次出现。
更多推荐
所有评论(0)