- import io.flutter.* 报红时, 引入flutter.sdk下的flutter.jar即可
#以下报红
import io.flutter.embedding.engine.plugins.FlutterPlugin;
import io.flutter.embedding.engine.plugins.activity.ActivityAware;
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
import io.flutter.plugin.common.MethodChannel.Result;
build.gradle
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties') # 从项目根目录下获取flutter.sdk配置字段
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
dependencies {
...略
compileOnly files("$flutterRoot/bin/cache/artifacts/engine/android-arm/flutter.jar")
}
local.properties
#增加如下一行
flutter.sdk=E:\\temp\\flutter
- androidx.annotation.NonNull报红, 引入androidx.annotation:annotation即可
#报红
@NonNull
build.gradle
dependencies {
...略
implementation 'androidx.annotation:annotation:1.0.2'
}
- FlutterPlugin获取Activity, 实现ActivityAware接口即可(java)
public class MapToolPlugin implements FlutterPlugin, MethodCallHandler, ActivityAware {
...略其它代码
private Activity activity;
//获取activity
@Override
public void onAttachedToActivity(ActivityPluginBinding activityPluginBinding) {
activity = activityPluginBinding.getActivity();
}
}
#使用Intent去跳转
activity.startActivity(new Intent(activity, xxxActivity.class));
- kotlin版本获取Activity
import io.flutter.plugin.common.PluginRegistry.Registrar
class MapToolPlugin(registrar: Registrar) : Application.ActivityLifecycleCallbacks {
@JvmStatic
fun registerWith(registrar: Registrar) {
if (registrar.activity() == null) {
}
}
}
#然后就可以使用Intent去跳转到对应的控件啦
val intent = Intent(registrar.activity(), xxxActivity::class.java)