1、可能出现 BaiduLBS_Android.jar 的冲突。
“find libs BaiduLBS_Android.jar and jetb_BaiduLBS_Android.jar” 去每一个依赖了的builde.gradle里面只能有且一个api其他的都需要compileOnly
compileOnly files('libs/BaiduLBS_Android.jar')
2、出现 …path ‘lib/arm64-v8a/libindoor.so’…
- What went wrong:
Execution failed for task ‘:app:transformNativeLibsWithMergeJniLibsForDebug’. More than one file was found with OS independent path ‘lib/arm64-v8a/libindoor.so’ ```
- What went wrong:
Execution failed for task ‘:app:transformNativeLibsWithMergeJniLibsForDebug’.
More than one file was found with OS independent path ‘lib/arm64-v8a/libindoor.so’ ```
在主项目的 android-app- build.gradle中添加如下
packagingOptions{pickFirst 'lib/arm64-v8a/libindoor.so'pickFirst 'lib/x86/libindoor.so'pickFirst 'lib/x86_64/libindoor.so'pickFirst 'lib/armeabi-v7a/libindoor.so'pickFirst 'lib/x86_64/liblocSDK8a.so'pickFirst 'lib/arm64-v8a/liblocSDK8a.so'pickFirst 'lib/x86/liblocSDK8a.so'pickFirst 'lib/armeabi-v7a/liblocSDK8a.so'}
3、出现BMFMapWidget create失败…register
运行之后出FlutterBmfmapPlugin…没有register
我们去Flutter plugin下面找到flutter_bmfmap_1.0.1下面的src.main.FlutterBmmapPlugin
/*** FlutterBmfmapPlugin*/package com.baidu.flutter_bmfmap;import android.os.Build;import android.util.Log;import androidx.annotation.NonNull;import com.baidu.flutter_bmfmap.map.OfflineHandler;import com.baidu.flutter_bmfmap.utils.Constants;import com.baidu.flutter_bmfmap.utils.Env;import io.flutter.embedding.engine.FlutterEngine;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.embedding.engine.plugins.shim.ShimPluginRegistry;import io.flutter.plugin.common.BinaryMessenger;import io.flutter.plugin.common.MethodCall;import io.flutter.plugin.common.MethodChannel.MethodCallHandler;import io.flutter.plugin.common.MethodChannel.Result;import io.flutter.plugin.common.PluginRegistry;import io.flutter.plugin.common.PluginRegistry.Registrar;import io.flutter.plugin.platform.PlatformViewRegistry;/*** FlutterBmfmapPlugin*/public class FlutterBmfmapPlugin implements FlutterPlugin, ActivityAware, MethodCallHandler {private static final String TAG = FlutterBmfmapPlugin.class.getSimpleName();private OfflineHandler mOfflineHandler;//魔改百度地图插件 全局变量01private FlutterPluginBinding flutterPluginBinding;//魔改百度地图插件 全局变量02private PlatformViewRegistry mRegistrar;//魔改百度地图插件 方法01@Overridepublic void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) {mOfflineHandler = new OfflineHandler();mOfflineHandler.init(flutterPluginBinding.getBinaryMessenger());this.flutterPluginBinding = flutterPluginBinding;//BMKMapViewthis.mRegistrar = flutterPluginBinding.getPlatformViewRegistry();Log.e(TAG, "onAttachedToEngine: "+"注册了" );//注释百度他们自己的东西/*ShimPluginRegistry shimPluginRegistry = new ShimPluginRegistry(flutterEngine);String key = FlutterBmfmapPlugin.class.getSimpleName();if(shimPluginRegistry.hasPlugin(key)){if(Env.DEBUG){Log.d(TAG, "hasPlugin");}return;}mRegistrar = shimPluginRegistry.registrarFor(key);*/}// This static function is optional and equivalent to onAttachedToEngine. It supports the old// pre-Flutter-1.12 Android projects. You are encouraged to continue supporting// plugin registration via this function while apps migrate to use the new Android APIs// post-flutter-1.12 via https://flutter.dev/go/android-project-migration.//// It is encouraged to share logic between onAttachedToEngine and registerWith to keep// them functionally equivalent. Only one of onAttachedToEngine or registerWith will be called// depending on the user's project. onAttachedToEngine or registerWith must both be defined// in the same class.public static void registerWith(Registrar registrar) {OfflineHandler offlineHandler = new OfflineHandler();offlineHandler.init(registrar.messenger());registrar.platformViewRegistry().registerViewFactory(Constants.ViewType.sMapView,new MapViewFactory(registrar.activity(), registrar.messenger(), Constants.ViewType.sMapView));registrar.platformViewRegistry().registerViewFactory(Constants.ViewType.sTextureMapView,new TextureMapViewFactory(registrar.activity(), registrar.messenger(), Constants.ViewType.sTextureMapView));}@Overridepublic void onMethodCall(@NonNull MethodCall call, @NonNull Result result) {if (call.method.equals("getPlatformVersion")) {result.success("Android " + android.os.Build.VERSION.RELEASE);} else {}}@Overridepublic void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {if (null == binding) {return;}BinaryMessenger binaryMessenger = binding.getBinaryMessenger();if (null == binaryMessenger) {return;}mOfflineHandler.unInit(binding.getBinaryMessenger());}//魔改百度地图插件 方法02@Overridepublic void onAttachedToActivity(ActivityPluginBinding binding) {Log.e(TAG, "onAttachedToActivity: "+"绑定了" );if (null == binding || null == mRegistrar) {return;}//删除百度下面的。然后复制这几行mRegistrar.registerViewFactory(Constants.ViewType.sMapView,new MapViewFactory(binding.getActivity(), flutterPluginBinding.getBinaryMessenger(), Constants.ViewType.sMapView));mRegistrar.registerViewFactory(Constants.ViewType.sTextureMapView,new TextureMapViewFactory(binding.getActivity(), flutterPluginBinding.getBinaryMessenger(), Constants.ViewType.sTextureMapView));}@Overridepublic void onDetachedFromActivityForConfigChanges() {Log.d(TAG, "onDetachedFromActivityForConfigChanges");}@Overridepublic void onReattachedToActivityForConfigChanges(ActivityPluginBinding binding) {Log.d(TAG, "onReattachedToActivityForConfigChanges");}@Overridepublic void onDetachedFromActivity() {Log.d(TAG, "onDetachedFromActivity");}}

