if (call.method == “helloFromNativeCode”) {

val greetings = helloFromNativeCode()

result.success(greetings)

}

}

}

private fun helloFromNativeCode(): String {

return “Hello from Native Android Code”

}

companion object {

private const val CHANNEL = “flutter.native/helper”

}

}

如果使用:

import io.flutter.embedding.android.FlutterActivity

代替

import io.flutter.app.FlutterActivity

我可以用

override fun configureFlutterEngine(flutterEngine: FlutterEngine) {

GeneratedPluginRegistrant.registerWith(flutterEngine);

}

但遇到以下问题:

MethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result ->

if (call.method == “helloFromNativeCode”) {

val greetings = helloFromNativeCode()

result.success(greetings)

}

}

因为我在 flutterView 上遇到错误:

Unresolved reference: flutterView

代码如下所示:

import android.os.Bundle

import io.flutter.embedding.android.FlutterActivity

import io.flutter.embedding.engine.FlutterEngine

import io.flutter.plugin.common.MethodChannel

import io.flutter.plugins.GeneratedPluginRegistrant

import io.flutter.view.FlutterMain

class MainActivity : FlutterActivity() {

override fun configureFlutterEngine(flutterEngine: FlutterEngine) {

GeneratedPluginRegistrant.registerWith(flutterEngine);

}

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

MethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result -> // here is the error

if (call.method == “helloFromNativeCode”) {

val greetings = helloFromNativeCode()

result.success(greetings)

}

}

}

private fun helloFromNativeCode(): String {

return “Hello from Native Android Code”

}

companion object {

private const val CHANNEL = “flutter.native/helper”

}

}

我希望有一个人可以帮助我。

最佳答案

代替flutterView,请使用flutterEngine.getDartExecutor()。

关于android - FlutterActivity MethodChannel和FlutterView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59323505/

import ‘package:flutter/material.dart’;

import ‘package:flutter/services.dart’;

import ‘package:flutter_package_demo/theme/themes.dart’;

class UserPage extends StatefulWidget {

const UserPage({Key key}) : super(key: key);

@override

_UserPageState createState() => _UserPageState();

}

const String CHANNEL =

“www.luckly.work”; //这儿要与 MethodChannel(flutterView, CHANNEL)中CHANNEL名称一致

const String invokeMethod =

“breeze”; //这儿要与 call.method == invokeMethod中invokeMethod名称一致

var channel = const MethodChannel(CHANNEL);

class _UserPageState extends State {

String _result = “”;

@override

Widget build(BuildContext context) {

final theme = Theme.of(context);

return Scaffold(

appBar: AppBar(

title: Text(

“个人”,

style: TextStyle(

color: theme.accentColor,

),

),

),

body: Container(

child: Column(

children: [

Text(

“个人”,

style: TextStyle(

color: theme.accentColor,

),

),

FlatButton(

onPressed: () {

setState(() {});

currentTheme.toggleTheme();

},

child: Text(

“多主题”,

style: TextStyle(

color: theme.accentColor,

),

),

),

Center(

child: RaisedButton(

onPressed: () async {

var result = await channel.invokeMethod(invokeMethod);

setState(() {

_result = result;

});

print(result);

},

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
Y-1715249054314)]

[外链图片转存中…(img-75qc6VvM-1715249054315)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐