- Quando import io.flutter.* estiver vermelho, basta importar flutter.jar em flutter.sdk
#以下报红
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 relata vermelho, apenas introduza androidx.annotation:annotation
#报红
@NonNull
build.gradle
dependencies {
...略
implementation 'androidx.annotation:annotation:1.0.2'
}
- FlutterPlugin obtém a atividade e implementa a interface 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));
- versão kotlin obter atividade
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)