[Flutter]为电脑的安卓模拟器编译一个使用CPU渲染的apk

1,391 阅读1分钟

macOS上好用的安卓模拟器不多,用过网易mumu模拟器还不错,就一直在用。

不知道Windows或者macOS其他安卓模拟器的情况是怎么样的,但是在网易mumu模拟器上调试Flutter应用直接执行flutter run后app会闪退,报错内容为Failed to setup Skia Gr content.

经过一番搜索后,获悉需要增加一个--enable-software-rendering参数,的确解决了这个问题。

那问题就来了,这个参数只能作为执行命令flutter run时搭配使用

使用flutter build apk编译为apk给安卓模拟器安装并启动之后一样会直接闪退,但这时可没有办法使用--enable-software-rendering参数了。

再一番搜索后在stackoverflow发现有答案,愣着啊,抄干嘛(开玩笑,抄还是要抄的)?

经过一番与时俱进的操作后,最后要在android/app/src/main/java/appid/MainActivity.java文件添加的代码如下:

import android.os.Bundle;
// 其它import语句

public class MyActivity extends FlutterActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        // use software rendering (ideally only when you need to)
        getIntent().putExtra("enable-software-rendering", true);
        super.onCreate(savedInstanceState);
    }
}

kotlin的对应代码请参照并自行摸索。

打完收工。

编译后的apk实测可以在网易mumu模拟器上运行。