网站建设公司长春,自己买一台服务器做自己的网站,科技企业网站设计制作,怎样在阿里巴巴上做网站前提条件#xff1a; 完成Flutter安装与环境搭建 一、原生Android项目中引入Flutter
1、在Android项目中#xff0c;添加Flutter支持的体系结构过滤器
项目 - app - build.gradle ...... defaultConfig {......ndk {// Flutter支持的体系结构过滤器abiFilters a…
前提条件 完成Flutter安装与环境搭建 一、原生Android项目中引入Flutter
1、在Android项目中添加Flutter支持的体系结构过滤器
项目 - app - build.gradle ...... defaultConfig {......ndk {// Flutter支持的体系结构过滤器abiFilters armeabi-v7a, arm64-v8a, x86_64}}
2、 Android Studio需要将你的 Flutter 模块作为依赖
1、在现有Android项目同级目录终端创建flutter module
前往File New New Flutter Project… 选择“Flutter”
填写你的 Flutter SDK path
之后点击“Next” 点击“Next”之后进入下面图示 备注 Project name创建Flutter项目名称 Projrct location项目安装路径要放在Android项目同级目录 Project type选择“Module” 之后点击“Create”即创建一个新的Flutter Module项目。 2、引入逻辑 在app下的build.gradle文件中添加以下配置 compileOptions {sourceCompatibility 1.8targetCompatibility 1.8
} 我们知道这是使用Java 8所需要的配置在这里的作用是为了解决版本兼容问题如果不配置的话运行项目可能会报错Invoke-customs are only supported starting with Android O (--min-api 26)。 如果新创建的Android项目build.gradle已存在就不需要添加上述配置了。 然后在项目根目录下的setting.gradle文件中配置 // 加入下面配置setBinding(new Binding([gradle: this]))evaluate(new File(settingsDir.parentFile,flutter_data/.android/include_flutter.groovy))
说明flutter_data是上面刚创建的Flutter Module项目名称
之后“Sync Now”一下项目。
如果sync项目报Failed to apply plugin class FlutterPlugin.错 解决办法 打开setting.gradle将repositoriesMode改为RepositoriesMode.PREFER_PROJECT 改后 将RepositoriesMode模式替换后再点击“Try Again”
如果还遇到第三方解析失败在app - build.gradle中添加maven
dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.PREFER_PROJECT)repositories {maven { url https://jitpack.io }maven { url https://maven.aliyun.com/nexus/content/groups/public/ }maven { url https://maven.aliyun.com/repository/central }maven { url https://maven.aliyun.com/nexus/content/repositories/google }google()mavenCentral()}
}
另外在项目下的build.gradel 添加
allprojects {repositories {maven { url https://jitpack.io }maven { url https://maven.aliyun.com/nexus/content/groups/public/ }maven { url https://maven.aliyun.com/repository/central }maven { url https://maven.aliyun.com/nexus/content/repositories/google }google()mavenCentral()}
}task clean(type: Delete) {delete rootProject.buildDir
}
如图所示 Sync后我们可以看到项目中多了一个名称为flutter的library module 我们需要在app下的build.gradle文件中添加该module的依赖。
dependencies {......implementation project(:flutter)
}
“Sync”一下项目这样就成功地将Flutter引入到了Android原生项目中。 二、Android与Flutter交互 上面的项目每次要看flutter代码是不是每次都要切过来切过去的所以呢我们可以在setting.gradle 加上这么一行代码 加下面两行主要目的是直接在原生的app工程下查看flutter的代码避免切来切去
include flutter_data
project(:flutter_data).projectDir new File(../flutter_data) 添加代码后“sync”项目会生成flutter_data项目这样就可以直接在原生app中修改flutter中代码了。
1、Android跳转Flutter
1、在清单AndroidManifest里面添加 FlutterActivity在清单AndroidManifest里面添加 FlutterActivity activityandroid:nameio.flutter.embedding.android.FlutterActivityandroid:configChangesorientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiModeandroid:hardwareAcceleratedtrueandroid:windowSoftInputModeadjustResize /
在MainActivity中调用点击事件直接跳转
btnSendFlutter.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View view) {startActivity(FlutterActivity.createDefaultIntent(MainActivity.this));}}); 2、上述跳转你会发现跳转有些慢或者常出现卡顿现象所以我们常用带有 缓存的初始路由来 启动FlutterActivity 创建一个Application public class MyApplication extends Application {private FlutterEngine flutterEngine;Overridepublic void onCreate() {super.onCreate();// 创建一个Flutter引擎flutterEngine new FlutterEngine(this);// 开始执行 Dart 代码来预热flutter引擎flutterEngine.getDartExecutor().executeDartEntrypoint(DartExecutor.DartEntrypoint.createDefault());//缓存Flutter引擎用来开启FlutterActivityFlutterEngineCache.getInstance().put(my_engine_id, flutterEngine);}} 在AndroidManifest.xml中使用引用的Application android:name.MyApplication 使用缓存引擎跳转Flutter
startActivity(FlutterActivity.withCachedEngine(my_engine_id).build(MainActivity.this)
);