首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flutter build apk with --enable-software-rendering?

Flutter build apk with --enable-software-rendering?
EN

Stack Overflow用户
提问于 2018-05-02 12:13:32
回答 3查看 7.4K关注 0票数 6

有没有可能这样做:

代码语言:javascript
复制
flutter build apk --enable-software-rendering

我需要一个发布版本,执行说的方式如下:

代码语言:javascript
复制
flutter run --enable-software-rendering --profile

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2019-01-07 02:36:34

TL;DRgetIntent().putExtra("enable-software-rendering", true);置于您的onCreate()之上

备注-我假设安卓是从"apk“的标题和软件渲染的需要。

查看源代码,flutter run--enable-software-rendering标志导致使用am start--ez enable-software-rendering true启动活动,这会将其作为布尔值附加到意图中。

如果您希望控制何时从代码使用软件渲染(例如,取决于应用程序接口级别或设备型号),请在onCreate()中额外设置所提到的意图。

完整示例:

代码语言:javascript
复制
import android.os.Bundle;
import io.flutter.embedding.android.FlutterActivity;

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);

        // start Flutter
        super.onCreate(savedInstanceState);
    }
}
票数 7
EN

Stack Overflow用户

发布于 2020-09-16 23:44:53

对于那些因为正在为你的Flutter Android应用程序崩溃而苦苦挣扎的人来说,他们会遇到以下错误

代码语言:javascript
复制
ERROR:flutter/shell/gpu/gpu_surface_gl Failed to setup Skia Gr context

当被放到后台返回前台时,只需像我们的朋友Matej Snoha上面所说的那样,将enable-software-rendering添加到"onCreate“方法中。

换句话说,将android/app/src/main/kotlin/[project]/MainActivity文件更改为以下Kotlin代码:

代码语言:javascript
复制
class MainActivity : FlutterActivity() {

    // add onCreate method (if not exists)
    override fun onCreate(savedInstanceState: Bundle?) {
        // add this line to "onCreate" method
        this.getIntent().putExtra("enable-software-rendering", true)
        // don't forget to call "super"
        super.onCreate(savedInstanceState)
    }

}

它对我来说就像是一种魔力(不需要给Flutter.startInitialization(this);打电话)。

票数 1
EN

Stack Overflow用户

发布于 2020-11-10 19:34:55

Matej的回答为基于Java的颤动应用程序提供了解决方案。对于使用Kotlin启动的新创建的应用程序,代码如下:

代码语言:javascript
复制
import android.os.Bundle;
import io.flutter.embedding.android.FlutterActivity

class MainActivity: FlutterActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {

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

        // start Flutter
        super.onCreate(savedInstanceState)
    }
}

MainActivity类位于以下路径中:

代码语言:javascript
复制
android/app/src/main/kotlin/com/.../.../MainActivity.kt
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50127070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档