首页 > 解决方案 > 找不到符号 flutterEngine.getPlugins()

问题描述

我尝试在颤振项目中运行 java 代码。已经制作了methodchannel,但我明白了

找不到符号 flutterEngine.getPlugins().add(new io.flutter.plugins.pathprovider.PathProviderPlugin());

未为颤振引擎定义 getplugins

package com.background.service.flutterbackgroundservice;

import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;

import androidx.annotation.Nullable;


import java.util.Objects;

import io.flutter.embedding.android.FlutterActivity;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugins.GeneratedPluginRegistrant;

import static android.content.pm.PackageManager.DONT_KILL_APP;

public class MainActivity extends FlutterActivity {


    private Intent forservice;
    @Override
    protected void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        GeneratedPluginRegistrant.registerWith(new FlutterEngine(this));

         forservice = new Intent(MainActivity.this, MyService.class);
         new MethodChannel(Objects.requireNonNull(getFlutterEngine()).getDartExecutor().getBinaryMessenger(), "samples.flutter.dev/battery").setMethodCallHandler((call, result) -> {
             if (call.method.equals("startservice")){
                 startservice();

                 result.success("service start");
             }else {
                 result.notImplemented();
             }
         });


    }
private void startservice(){
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
        startForegroundService(forservice);
    }else{
        startService(forservice);
    }
}

标签: javaandroidflutterkotlindart

解决方案


推荐阅读