From c66b8e1ebdd4134ef376d05f7407109c2308959b Mon Sep 17 00:00:00 2001 From: kuloud Date: Wed, 12 Mar 2025 00:01:15 +0800 Subject: [PATCH] release: 1.0.13 --- .gitignore | 1 + android/build.gradle | 7 ++-- .../flutter/map/AMapFlutterMapPlugin.java | 34 +++++-------------- .../amap/flutter/map/utils/ConvertUtil.java | 18 +++++++--- example/android/app/build.gradle | 7 ++-- .../android/app/src/main/AndroidManifest.xml | 1 + example/android/gradle.properties | 15 ++++++++ lib/amap_map.dart | 2 +- pubspec.yaml | 2 +- 9 files changed, 50 insertions(+), 37 deletions(-) create mode 100644 example/android/gradle.properties diff --git a/.gitignore b/.gitignore index 6700c8e..48ad359 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ build/ **/pubspec.lock .settings/ .project +**.cxx diff --git a/android/build.gradle b/android/build.gradle index 77c4e8f..6a6f8c6 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -8,7 +8,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.5.3' + classpath 'com.android.tools.build:gradle:3.5.4' } } @@ -22,7 +22,8 @@ rootProject.allprojects { apply plugin: 'com.android.library' android { - compileSdkVersion 34 + namespace = "com.amap.flutter.map" + compileSdkVersion 35 defaultConfig { minSdkVersion 16 @@ -34,6 +35,6 @@ android { dependencies { implementation 'com.amap.api:3dmap-location-search:10.1.200_loc6.4.9_sea9.7.4' - implementation 'androidx.annotation:annotation:1.8.1' + implementation 'androidx.annotation:annotation:1.9.1' } diff --git a/android/src/main/java/com/amap/flutter/map/AMapFlutterMapPlugin.java b/android/src/main/java/com/amap/flutter/map/AMapFlutterMapPlugin.java index 2633dda..1ce5f5a 100644 --- a/android/src/main/java/com/amap/flutter/map/AMapFlutterMapPlugin.java +++ b/android/src/main/java/com/amap/flutter/map/AMapFlutterMapPlugin.java @@ -23,40 +23,17 @@ public class AMapFlutterMapPlugin implements private static final String CLASS_NAME = "AMapFlutterMapPlugin"; private static final String VIEW_TYPE = "com.amap.flutter.map"; private Lifecycle lifecycle; + private FlutterPluginBinding pluginBinding; public AMapFlutterMapPlugin() { } - public static void registerWith(PluginRegistry.Registrar registrar) { - LogUtil.i(CLASS_NAME, "registerWith=====>"); - - final Activity activity = registrar.activity(); - if (activity == null) { - LogUtil.w(CLASS_NAME, "activity is null!!!"); - return; - } - if (activity instanceof LifecycleOwner) { - registrar - .platformViewRegistry() - .registerViewFactory( - VIEW_TYPE, - new AMapPlatformViewFactory( - registrar.messenger(), - () -> ((LifecycleOwner) activity).getLifecycle())); - } else { - registrar - .platformViewRegistry() - .registerViewFactory( - VIEW_TYPE, - new AMapPlatformViewFactory(registrar.messenger(), new ProxyLifecycleProvider(activity))); - } - } - // FlutterPlugin @Override public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) { LogUtil.i(CLASS_NAME, "onAttachedToEngine==>"); + this.pluginBinding = binding; binding .getPlatformViewRegistry() .registerViewFactory( @@ -78,6 +55,13 @@ public class AMapFlutterMapPlugin implements public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) { LogUtil.i(CLASS_NAME, "onAttachedToActivity==>"); lifecycle = FlutterLifecycleAdapter.getActivityLifecycle(binding); + pluginBinding.getPlatformViewRegistry().registerViewFactory( + VIEW_TYPE, + new AMapPlatformViewFactory( + pluginBinding.getBinaryMessenger(), + () -> lifecycle + ) + ); } @Override diff --git a/android/src/main/java/com/amap/flutter/map/utils/ConvertUtil.java b/android/src/main/java/com/amap/flutter/map/utils/ConvertUtil.java index c45afc2..6d5e905 100644 --- a/android/src/main/java/com/amap/flutter/map/utils/ConvertUtil.java +++ b/android/src/main/java/com/amap/flutter/map/utils/ConvertUtil.java @@ -30,7 +30,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import io.flutter.view.FlutterMain; +import io.flutter.embedding.engine.FlutterEngine; +import io.flutter.embedding.engine.loader.FlutterLoader; /** * @author whm @@ -44,6 +45,15 @@ public class ConvertUtil { private static final int[] LocationTypeMap = new int[]{MyLocationStyle.LOCATION_TYPE_SHOW, MyLocationStyle.LOCATION_TYPE_FOLLOW, MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE}; public static float density; private static String apiKey; + private static FlutterLoader flutterLoader; // For asset loading + + public static void initialize(Context context) { + flutterLoader = new FlutterLoader(); + if (!flutterLoader.initialized()) { + flutterLoader.startInitialization(context); + flutterLoader.ensureInitializationComplete(context, null); + } + } public static void setPrivacyStatement(Context context, Object object) { if (null == object) { @@ -396,15 +406,15 @@ public class ConvertUtil { case "fromAsset": if (data.size() == 2) { return BitmapDescriptorFactory.fromAsset( - FlutterMain.getLookupKeyForAsset(toString(data.get(1)))); + flutterLoader.getLookupKeyForAsset(toString(data.get(1)))); } else { return BitmapDescriptorFactory.fromAsset( - FlutterMain.getLookupKeyForAsset(toString(data.get(1)), toString(data.get(2)))); + flutterLoader.getLookupKeyForAsset(toString(data.get(1)), toString(data.get(2)))); } case "fromAssetImage": if (data.size() == 3) { return BitmapDescriptorFactory.fromAsset( - FlutterMain.getLookupKeyForAsset(toString(data.get(1)))); + flutterLoader.getLookupKeyForAsset(toString(data.get(1)))); } else { throw new IllegalArgumentException( "'fromAssetImage' Expected exactly 3 arguments, got: " + data.size()); diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 7884623..28746d2 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -26,7 +26,8 @@ if (flutterVersionName == null) { android { - compileSdkVersion 34 + namespace = "com.amap.flutter.amap_map_example" + compileSdkVersion 35 lint { disable 'InvalidPackage' @@ -36,7 +37,7 @@ android { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.amap.flutter.amap_map_example" minSdkVersion flutter.minSdkVersion - targetSdkVersion 33 + targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName } @@ -69,7 +70,7 @@ android { jniLibs.srcDirs = ['libs'] } } - ndkVersion '25.1.8937393' + ndkVersion '27.0.12077973' } dependencies { } diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index aa7c6f9..8762a6e 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -19,6 +19,7 @@ diff --git a/example/android/gradle.properties b/example/android/gradle.properties new file mode 100644 index 0000000..fd2393c --- /dev/null +++ b/example/android/gradle.properties @@ -0,0 +1,15 @@ +## For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx1024m -XX:MaxPermSize=256m +org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 +# +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. For more details, visit +# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects +# org.gradle.parallel=true +#Tue Mar 11 22:34:19 CST 2025 +android.enableJetifier=true +android.useAndroidX=true diff --git a/lib/amap_map.dart b/lib/amap_map.dart index d6b74c3..a3f0004 100644 --- a/lib/amap_map.dart +++ b/lib/amap_map.dart @@ -11,7 +11,7 @@ // distributed under the License is distributed on an "AS IS" BASIS, /// 高德地图Flutter插件入口文件 -library amap_map; +library; import 'dart:async'; diff --git a/pubspec.yaml b/pubspec.yaml index d44e69e..83216f9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: amap_map description: Amap SDK Flutter plugin for integrating AMapSDK in iOS and Android applications. -version: 1.0.12 +version: 1.0.13 homepage: https://github.com/kuloud/amap_map issue_tracker: https://github.com/kuloud/amap_map/issues platforms: