dotnet / android

.NET for Android provides open-source bindings of the Android SDK for use with .NET managed languages such as C#
MIT License
1.93k stars 528 forks source link

Binding Native android lib is not abstract and does not override abstract method #4379

Closed omernaser closed 4 years ago

omernaser commented 4 years ago

Steps to Reproduce

  1. Download these .AAR files from the following links https://developer.huawei.com/repo/com/huawei/hms/maps/4.0.0.301/maps-4.0.0.301.aar

https://developer.huawei.com/repo/com/huawei/hms/maps-base/4.0.0.301/maps-base-4.0.0.301.aar

https://developer.huawei.com/repo/com/huawei/hms/base/4.0.0.300/base-4.0.0.300.aar

https://developer.huawei.com/repo/com/huawei/hms/dynamic-api/1.0.13.300/dynamic-api-1.0.13.300.aar

https://developer.huawei.com/repo/com/huawei/hmf/tasks/1.3.3.300/tasks-1.3.3.300.aar

https://developer.huawei.com/repo/com/huawei/agconnect/agconnect-core/1.0.0.300/agconnect-core-1.0.0.300.aar

https://developer.huawei.com/repo/com/huawei/hms/network-grs/4.0.0.302/network-grs-4.0.0.302.aar

https://developer.huawei.com/repo/com/huawei/hms/network-common/4.0.0.302/network-common-4.0.0.302.aar

  1. Then i follow the steps in this document https://docs.microsoft.com/en-us/xamarin/android/platform/binding-java-library/binding-an-aar
  2. After geting the ddl file and adding it at android project i get the following error 12 times

Expected Behavior

The binding should work without error

Actual Behavior

i have an error i can't find any solution for it since 3 day

Version Information

compile using android 9 Microsoft Visual Studio Enterprise 2019 Version 16.4.5

Log File

image

omernaser commented 4 years ago

I am working on Huawei Team and we are trying to build our In-house kits after finish a lot of successful integration with a different platform, we need your help to make it at XAMARIN and we have a lot of clients they wants to use HMS using XAMARIN

gugavaro commented 4 years ago

@jpobst have you seen this before?

jpobst commented 4 years ago

I have not, it seems rather odd to see errors trying to consume the binding rather than when building it.

Additionally I would think all of our *Implementor classes would be internal and sealed so I'm not sure how something is overriding them:

https://github.com/xamarin/java.interop/blob/master/tools/generator/Java.Interop.Tools.Generator.CodeGeneration/CodeGenerator.cs#L628

Can you please post the code you are using to consume the binding?

omernaser commented 4 years ago

I have not, it seems rather odd to see errors trying to consume the binding rather than when building it.

Additionally I would think all of our *Implementor classes would be internal and sealed so I'm not sure how something is overriding them:

https://github.com/xamarin/java.interop/blob/master/tools/generator/Java.Interop.Tools.Generator.CodeGeneration/CodeGenerator.cs#L628

Can you please post the code you are using to consume the binding?

please refer to following link for sample code https://1drv.ms/u/s!AlToIo46UOgSi0WZmnNXImYGnedu?e=8ewjeJ

omernaser commented 4 years ago

any update on this

omernaser commented 4 years ago

????

jpobst commented 4 years ago

If you run your build of HMSDLLMain with Diagnostic level logging, you will see the following messages:

Error while processing '[Method] com.huawei.hms.maps.model.Circle addCircle(com.huawei.hms.maps.model.CircleOptions p0)' in '[Class] com.huawei.hms.maps.HuaweiMap': Type 'com.huawei.hms.maps.model.CircleOptions' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.GroundOverlay addGroundOverlay(com.huawei.hms.maps.model.GroundOverlayOptions p0)' in '[Class] com.huawei.hms.maps.HuaweiMap': Type 'com.huawei.hms.maps.model.GroundOverlayOptions' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.Marker addMarker(com.huawei.hms.maps.model.MarkerOptions p0)' in '[Class] com.huawei.hms.maps.HuaweiMap': Type 'com.huawei.hms.maps.model.MarkerOptions' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.Polygon addPolygon(com.huawei.hms.maps.model.PolygonOptions p0)' in '[Class] com.huawei.hms.maps.HuaweiMap': Type 'com.huawei.hms.maps.model.PolygonOptions' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.Polyline addPolyline(com.huawei.hms.maps.model.PolylineOptions p0)' in '[Class] com.huawei.hms.maps.HuaweiMap': Type 'com.huawei.hms.maps.model.PolylineOptions' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.TileOverlay addTileOverlay(com.huawei.hms.maps.model.TileOverlayOptions p0)' in '[Class] com.huawei.hms.maps.HuaweiMap': Type 'com.huawei.hms.maps.model.TileOverlayOptions' was not found.
Error while processing '[Method] void animateCamera(com.huawei.hms.maps.CameraUpdate p0)' in '[Class] com.huawei.hms.maps.HuaweiMap': Type 'com.huawei.hms.maps.CameraUpdate' was not found.
Error while processing '[Method] void animateCamera(com.huawei.hms.maps.CameraUpdate p0, int p1, com.huawei.hms.maps.HuaweiMap.CancelableCallback p2)' in '[Class] com.huawei.hms.maps.HuaweiMap': Type 'com.huawei.hms.maps.CameraUpdate' was not found.
Error while processing '[Method] void animateCamera(com.huawei.hms.maps.CameraUpdate p0, com.huawei.hms.maps.HuaweiMap.CancelableCallback p1)' in '[Class] com.huawei.hms.maps.HuaweiMap': Type 'com.huawei.hms.maps.CameraUpdate' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.CameraPosition getCameraPosition()' in '[Class] com.huawei.hms.maps.HuaweiMap': Type 'com.huawei.hms.maps.model.CameraPosition' was not found.
Error while processing '[Method] void moveCamera(com.huawei.hms.maps.CameraUpdate p0)' in '[Class] com.huawei.hms.maps.HuaweiMap': Type 'com.huawei.hms.maps.CameraUpdate' was not found.
Error while processing '[Method] void setLatLngBoundsForCameraTarget(com.huawei.hms.maps.model.LatLngBounds p0)' in '[Class] com.huawei.hms.maps.HuaweiMap': Type 'com.huawei.hms.maps.model.LatLngBounds' was not found.
Error while processing '[Method] void setLocationSource(com.huawei.hms.maps.LocationSource p0)' in '[Class] com.huawei.hms.maps.HuaweiMap': Type 'com.huawei.hms.maps.LocationSource' was not found.
Error while processing '[Method] boolean setMapStyle(com.huawei.hms.maps.model.MapStyleOptions p0)' in '[Class] com.huawei.hms.maps.HuaweiMap': Type 'com.huawei.hms.maps.model.MapStyleOptions' was not found.
Error while processing type '[Class] com.huawei.hms.maps.HuaweiMap.1': Type 'com.huawei.hms.maps.internal.IOnCameraMoveStartedListener.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.HuaweiMap.10': Type 'com.huawei.hms.maps.internal.IOnPolygonClickListener.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.HuaweiMap.11': Type 'com.huawei.hms.maps.internal.IOnMapClickListener.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.HuaweiMap.12': Type 'com.huawei.hms.maps.internal.IOnMapLongClickListener.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.HuaweiMap.13': Type 'com.huawei.hms.maps.internal.IOnMyLocationButtonClickListener.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.HuaweiMap.14': Type 'com.huawei.hms.maps.internal.ISnapshotReadyCallback.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.HuaweiMap.15': Type 'com.huawei.hms.maps.internal.IOnInfoWindowClickListener.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.HuaweiMap.16': Type 'com.huawei.hms.maps.internal.IOnIndoorStateChangeListener.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.HuaweiMap.2': Type 'com.huawei.hms.maps.internal.IOnCameraIdleListener.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.HuaweiMap.3': Type 'com.huawei.hms.maps.internal.IOnCameraMoveListener.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.HuaweiMap.4': Type 'com.huawei.hms.maps.internal.IInfoWindowAdapter.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.HuaweiMap.5': Type 'com.huawei.hms.maps.internal.IOnMapLoadedCallback.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.HuaweiMap.6': Type 'com.huawei.hms.maps.internal.IOnMarkerClickListener.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.HuaweiMap.7': Type 'com.huawei.hms.maps.internal.IOnMarkerDragListener.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.HuaweiMap.8': Type 'com.huawei.hms.maps.internal.IOnCircleClickListener.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.HuaweiMap.9': Type 'com.huawei.hms.maps.internal.IOnPolylineClickListener.Stub' was not found.
Error while processing '[Method] com.huawei.hms.maps.MapFragment newInstance(com.huawei.hms.maps.HuaweiMapOptions p0)' in '[Class] com.huawei.hms.maps.MapFragment': Type 'com.huawei.hms.maps.HuaweiMapOptions' was not found.
Error while processing type '[Class] com.huawei.hms.maps.MapFragment.MapCallBackProxy': Type 'com.huawei.hms.maps.internal.IOnMapReadyCallback.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.MapFragment.MapFragmentDeferredLifecycleHelper': Type 'com.huawei.hms.feature.dynamic.DeferredLifecycleHelper' was not found.
Error while processing '[Constructor] MapFragment.MapFragmentLifecycleDelegate(android.app.Fragment p0, com.huawei.hms.maps.internal.IMapFragmentDelegate p1, android.app.Activity p2)' in '[Class] com.huawei.hms.maps.MapFragment.MapFragmentLifecycleDelegate': Type 'com.huawei.hms.maps.internal.IMapFragmentDelegate' was not found.
Error while processing type '[Class] com.huawei.hms.maps.MapFragment.MapFragmentLifecycleDelegate.1': Type 'com.huawei.hms.maps.internal.IOnMapReadyCallback.Stub' was not found.
Error while processing '[Constructor] MapView(android.content.Context p0, com.huawei.hms.maps.HuaweiMapOptions p1)' in '[Class] com.huawei.hms.maps.MapView': Type 'com.huawei.hms.maps.HuaweiMapOptions' was not found.
Error while processing type '[Class] com.huawei.hms.maps.MapView.MapCallBackProxy': Type 'com.huawei.hms.maps.internal.IOnMapReadyCallback.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.MapView.MapViewDeferredLifecycleHelper': Type 'com.huawei.hms.feature.dynamic.DeferredLifecycleHelper' was not found.
Error while processing '[Constructor] MapView.MapViewLifecycleDelegate(android.view.ViewGroup p0, com.huawei.hms.maps.internal.IMapViewDelegate p1)' in '[Class] com.huawei.hms.maps.MapView.MapViewLifecycleDelegate': Type 'com.huawei.hms.maps.internal.IMapViewDelegate' was not found.
Error while processing type '[Class] com.huawei.hms.maps.MapView.MapViewLifecycleDelegate.1': Type 'com.huawei.hms.maps.internal.IOnMapReadyCallback.Stub' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.LatLng fromScreenLocation(android.graphics.Point p0)' in '[Class] com.huawei.hms.maps.Projection': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.VisibleRegion getVisibleRegion()' in '[Class] com.huawei.hms.maps.Projection': Type 'com.huawei.hms.maps.model.VisibleRegion' was not found.
Error while processing '[Method] android.graphics.Point toScreenLocation(com.huawei.hms.maps.model.LatLng p0)' in '[Class] com.huawei.hms.maps.Projection': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Constructor] Projection(com.huawei.hms.maps.internal.IProjectionDelegate p0)' in '[Class] com.huawei.hms.maps.Projection': Type 'com.huawei.hms.maps.internal.IProjectionDelegate' was not found.
Error while processing '[Method] void animateTo(com.huawei.hms.maps.model.StreetViewPanoramaCamera p0, long p1)' in '[Class] com.huawei.hms.maps.StreetViewPanorama': Type 'com.huawei.hms.maps.model.StreetViewPanoramaCamera' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.StreetViewPanoramaLocation getLocation()' in '[Class] com.huawei.hms.maps.StreetViewPanorama': Type 'com.huawei.hms.maps.model.StreetViewPanoramaLocation' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.StreetViewPanoramaCamera getPanoramaCamera()' in '[Class] com.huawei.hms.maps.StreetViewPanorama': Type 'com.huawei.hms.maps.model.StreetViewPanoramaCamera' was not found.
Error while processing '[Method] android.graphics.Point orientationToPoint(com.huawei.hms.maps.model.StreetViewPanoramaOrientation p0)' in '[Class] com.huawei.hms.maps.StreetViewPanorama': Type 'com.huawei.hms.maps.model.StreetViewPanoramaOrientation' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.StreetViewPanoramaOrientation pointToOrientation(android.graphics.Point p0)' in '[Class] com.huawei.hms.maps.StreetViewPanorama': Type 'com.huawei.hms.maps.model.StreetViewPanoramaOrientation' was not found.
Error while processing '[Method] void setPosition(com.huawei.hms.maps.model.LatLng p0)' in '[Class] com.huawei.hms.maps.StreetViewPanorama': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Method] void setPosition(com.huawei.hms.maps.model.LatLng p0, int p1)' in '[Class] com.huawei.hms.maps.StreetViewPanorama': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Method] void setPosition(com.huawei.hms.maps.model.LatLng p0, int p1, com.huawei.hms.maps.model.StreetViewSource p2)' in '[Class] com.huawei.hms.maps.StreetViewPanorama': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Method] void setPosition(com.huawei.hms.maps.model.LatLng p0, com.huawei.hms.maps.model.StreetViewSource p1)' in '[Class] com.huawei.hms.maps.StreetViewPanorama': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing type '[Class] com.huawei.hms.maps.StreetViewPanorama.1': Type 'com.huawei.hms.maps.internal.IOnStreetViewPanoramaCameraChangeListener.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.StreetViewPanorama.2': Type 'com.huawei.hms.maps.internal.IOnStreetViewPanoramaClickListener.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.StreetViewPanorama.3': Type 'com.huawei.hms.maps.internal.IOnStreetViewPanoramaLongClickListener.Stub' was not found.
Error while processing '[Method] com.huawei.hms.maps.StreetViewPanoramaFragment newInstance(com.huawei.hms.maps.StreetViewPanoramaOptions p0)' in '[Class] com.huawei.hms.maps.StreetViewPanoramaFragment': Type 'com.huawei.hms.maps.StreetViewPanoramaOptions' was not found.
Error while processing type '[Class] com.huawei.hms.maps.StreetViewPanoramaFragment.StreetFragmentDeferredLifecycleHelper': Type 'com.huawei.hms.feature.dynamic.DeferredLifecycleHelper' was not found.
Error while processing '[Constructor] StreetViewPanoramaFragment.StreetFragmentLifecycleDelegate(android.app.Fragment p0, com.huawei.hms.maps.internal.IStreetViewPanoramaFragmentDelegate p1, android.app.Activity p2)' in '[Class] com.huawei.hms.maps.StreetViewPanoramaFragment.StreetFragmentLifecycleDelegate': Type 'com.huawei.hms.maps.internal.IStreetViewPanoramaFragmentDelegate' was not found.
Error while processing type '[Class] com.huawei.hms.maps.StreetViewPanoramaFragment.StreetFragmentLifecycleDelegate.1': Type 'com.huawei.hms.maps.internal.IOnStreetViewPanoramaReadyCallback.Stub' was not found.
Error while processing '[Constructor] StreetViewPanoramaView(android.content.Context p0, com.huawei.hms.maps.StreetViewPanoramaOptions p1)' in '[Class] com.huawei.hms.maps.StreetViewPanoramaView': Type 'com.huawei.hms.maps.StreetViewPanoramaOptions' was not found.
Error while processing type '[Class] com.huawei.hms.maps.StreetViewPanoramaView.StreetViewDeferredLifecycleHelper': Type 'com.huawei.hms.feature.dynamic.DeferredLifecycleHelper' was not found.
Error while processing '[Constructor] StreetViewPanoramaView.StreetViewLifecycleDelegate(android.view.ViewGroup p0, com.huawei.hms.maps.internal.IStreetViewPanoramaViewDelegate p1)' in '[Class] com.huawei.hms.maps.StreetViewPanoramaView.StreetViewLifecycleDelegate': Type 'com.huawei.hms.maps.internal.IStreetViewPanoramaViewDelegate' was not found.
Error while processing type '[Class] com.huawei.hms.maps.StreetViewPanoramaView.StreetViewLifecycleDelegate.1': Type 'com.huawei.hms.maps.internal.IOnStreetViewPanoramaReadyCallback.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.SupportMapFragment': Type 'androidx.fragment.app.Fragment' was not found.
Error while processing type '[Class] com.huawei.hms.maps.SupportMapFragment.MapCallBackProxy': Type 'com.huawei.hms.maps.internal.IOnMapReadyCallback.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.SupportMapFragment.SupportMapFragmentDeferredLifecycleHelper': Type 'com.huawei.hms.feature.dynamic.DeferredLifecycleHelper' was not found.
Error while processing '[Constructor] SupportMapFragment.SupportMapFragmentLifecycleDelegate(androidx.fragment.app.Fragment p0, com.huawei.hms.maps.internal.IMapFragmentDelegate p1, android.app.Activity p2)' in '[Class] com.huawei.hms.maps.SupportMapFragment.SupportMapFragmentLifecycleDelegate': Type 'androidx.fragment.app.Fragment' was not found.
Error while processing type '[Class] com.huawei.hms.maps.SupportMapFragment.SupportMapFragmentLifecycleDelegate.1': Type 'com.huawei.hms.maps.internal.IOnMapReadyCallback.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.SupportStreetViewPanoramaFragment': Type 'androidx.fragment.app.Fragment' was not found.
Error while processing type '[Class] com.huawei.hms.maps.SupportStreetViewPanoramaFragment.StreetViewPanoramaCallBackProxy': Type 'com.huawei.hms.maps.internal.IOnStreetViewPanoramaReadyCallback.Stub' was not found.
Error while processing type '[Class] com.huawei.hms.maps.SupportStreetViewPanoramaFragment.SupportStreetViewPanoramaFragmentDeferredLifecycleHelper': Type 'com.huawei.hms.feature.dynamic.DeferredLifecycleHelper' was not found.
Error while processing '[Constructor] SupportStreetViewPanoramaFragment.SupportStreetViewPanoramaFragmentLifecycleDelegate(androidx.fragment.app.Fragment p0, com.huawei.hms.maps.internal.IStreetViewPanoramaFragmentDelegate p1, android.app.Activity p2)' in '[Class] com.huawei.hms.maps.SupportStreetViewPanoramaFragment.SupportStreetViewPanoramaFragmentLifecycleDelegate': Type 'androidx.fragment.app.Fragment' was not found.
Error while processing type '[Class] com.huawei.hms.maps.SupportStreetViewPanoramaFragment.SupportStreetViewPanoramaFragmentLifecycleDelegate.1': Type 'com.huawei.hms.maps.internal.IOnStreetViewPanoramaReadyCallback.Stub' was not found.
Error while processing '[Constructor] UiSettings(com.huawei.hms.maps.internal.IUiSettingsDelegate p0)' in '[Class] com.huawei.hms.maps.UiSettings': Type 'com.huawei.hms.maps.internal.IUiSettingsDelegate' was not found.
Error while processing '[Method] double computeDistanceBetween(com.huawei.hms.maps.model.LatLng p0, com.huawei.hms.maps.model.LatLng p1)' in '[Class] com.huawei.hms.maps.common.util.DistanceCalculator': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Field] com.huawei.hms.maps.model.internal.IBitmapDescriptorDelegate sIBitmapDescriptorDelegate' in '[Class] com.huawei.hms.maps.model.BitmapDescriptorFactory': Type 'com.huawei.hms.maps.model.internal.IBitmapDescriptorDelegate' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.BitmapDescriptor defaultMarker()' in '[Class] com.huawei.hms.maps.model.BitmapDescriptorFactory': Type 'com.huawei.hms.maps.model.BitmapDescriptor' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.BitmapDescriptor defaultMarker(float p0)' in '[Class] com.huawei.hms.maps.model.BitmapDescriptorFactory': Type 'com.huawei.hms.maps.model.BitmapDescriptor' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.BitmapDescriptor fromAsset(java.lang.String p0)' in '[Class] com.huawei.hms.maps.model.BitmapDescriptorFactory': Type 'com.huawei.hms.maps.model.BitmapDescriptor' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.BitmapDescriptor fromBitmap(android.graphics.Bitmap p0)' in '[Class] com.huawei.hms.maps.model.BitmapDescriptorFactory': Type 'com.huawei.hms.maps.model.BitmapDescriptor' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.BitmapDescriptor fromFile(java.lang.String p0)' in '[Class] com.huawei.hms.maps.model.BitmapDescriptorFactory': Type 'com.huawei.hms.maps.model.BitmapDescriptor' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.BitmapDescriptor fromPath(java.lang.String p0)' in '[Class] com.huawei.hms.maps.model.BitmapDescriptorFactory': Type 'com.huawei.hms.maps.model.BitmapDescriptor' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.BitmapDescriptor fromResource(int p0)' in '[Class] com.huawei.hms.maps.model.BitmapDescriptorFactory': Type 'com.huawei.hms.maps.model.BitmapDescriptor' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.LatLng getCenter()' in '[Class] com.huawei.hms.maps.model.Circle': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Method] java.util.List<com.huawei.hms.maps.model.PatternItem> getStrokePattern()' in '[Class] com.huawei.hms.maps.model.Circle': Type 'com.huawei.hms.maps.model.PatternItem' was not found.
Error while processing '[Method] void setCenter(com.huawei.hms.maps.model.LatLng p0)' in '[Class] com.huawei.hms.maps.model.Circle': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Method] void setStrokePattern(java.util.List<com.huawei.hms.maps.model.PatternItem> p0)' in '[Class] com.huawei.hms.maps.model.Circle': Type 'com.huawei.hms.maps.model.PatternItem' was not found.
Error while processing '[Constructor] Circle(com.huawei.hms.maps.model.internal.ICircleDelegate p0)' in '[Class] com.huawei.hms.maps.model.Circle': Type 'com.huawei.hms.maps.model.internal.ICircleDelegate' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.LatLngBounds getBounds()' in '[Class] com.huawei.hms.maps.model.GroundOverlay': Type 'com.huawei.hms.maps.model.LatLngBounds' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.LatLng getPosition()' in '[Class] com.huawei.hms.maps.model.GroundOverlay': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Method] void setImage(com.huawei.hms.maps.model.BitmapDescriptor p0)' in '[Class] com.huawei.hms.maps.model.GroundOverlay': Type 'com.huawei.hms.maps.model.BitmapDescriptor' was not found.
Error while processing '[Method] void setPosition(com.huawei.hms.maps.model.LatLng p0)' in '[Class] com.huawei.hms.maps.model.GroundOverlay': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Method] void setPositionFromBounds(com.huawei.hms.maps.model.LatLngBounds p0)' in '[Class] com.huawei.hms.maps.model.GroundOverlay': Type 'com.huawei.hms.maps.model.LatLngBounds' was not found.
Error while processing '[Constructor] GroundOverlay(com.huawei.hms.maps.model.internal.IGroundOverlayDelegate p0)' in '[Class] com.huawei.hms.maps.model.GroundOverlay': Type 'com.huawei.hms.maps.model.internal.IGroundOverlayDelegate' was not found.
Error while processing '[Constructor] IndoorBuilding(com.huawei.hms.maps.model.internal.IIndoorBuildingDelegate p0)' in '[Class] com.huawei.hms.maps.model.IndoorBuilding': Type 'com.huawei.hms.maps.model.internal.IIndoorBuildingDelegate' was not found.
Error while processing '[Constructor] IndoorLevel(com.huawei.hms.maps.model.internal.IIndoorLevelDelegate p0)' in '[Class] com.huawei.hms.maps.model.IndoorLevel': Type 'com.huawei.hms.maps.model.internal.IIndoorLevelDelegate' was not found.
Error while processing '[Method] java.util.List<java.util.List<com.huawei.hms.maps.model.LatLng>> getHoles()' in '[Class] com.huawei.hms.maps.model.Polygon': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Method] java.util.List<com.huawei.hms.maps.model.LatLng> getPoints()' in '[Class] com.huawei.hms.maps.model.Polygon': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Method] java.util.List<com.huawei.hms.maps.model.PatternItem> getStrokePattern()' in '[Class] com.huawei.hms.maps.model.Polygon': Type 'com.huawei.hms.maps.model.PatternItem' was not found.
Error while processing '[Method] void setHoles(java.util.List<? extends java.util.List<com.huawei.hms.maps.model.LatLng>> p0)' in '[Class] com.huawei.hms.maps.model.Polygon': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Method] void setPoints(java.util.List<com.huawei.hms.maps.model.LatLng> p0)' in '[Class] com.huawei.hms.maps.model.Polygon': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Method] void setStrokePattern(java.util.List<com.huawei.hms.maps.model.PatternItem> p0)' in '[Class] com.huawei.hms.maps.model.Polygon': Type 'com.huawei.hms.maps.model.PatternItem' was not found.
Error while processing '[Constructor] Polygon(com.huawei.hms.maps.model.internal.IPolygonDelegate p0)' in '[Class] com.huawei.hms.maps.model.Polygon': Type 'com.huawei.hms.maps.model.internal.IPolygonDelegate' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.Cap getEndCap()' in '[Class] com.huawei.hms.maps.model.Polyline': Type 'com.huawei.hms.maps.model.Cap' was not found.
Error while processing '[Method] java.util.List<com.huawei.hms.maps.model.PatternItem> getPattern()' in '[Class] com.huawei.hms.maps.model.Polyline': Type 'com.huawei.hms.maps.model.PatternItem' was not found.
Error while processing '[Method] java.util.List<com.huawei.hms.maps.model.LatLng> getPoints()' in '[Class] com.huawei.hms.maps.model.Polyline': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Method] com.huawei.hms.maps.model.Cap getStartCap()' in '[Class] com.huawei.hms.maps.model.Polyline': Type 'com.huawei.hms.maps.model.Cap' was not found.
Error while processing '[Method] void setEndCap(com.huawei.hms.maps.model.Cap p0)' in '[Class] com.huawei.hms.maps.model.Polyline': Type 'com.huawei.hms.maps.model.Cap' was not found.
Error while processing '[Method] void setPattern(java.util.List<com.huawei.hms.maps.model.PatternItem> p0)' in '[Class] com.huawei.hms.maps.model.Polyline': Type 'com.huawei.hms.maps.model.PatternItem' was not found.
Error while processing '[Method] void setPoints(java.util.List<com.huawei.hms.maps.model.LatLng> p0)' in '[Class] com.huawei.hms.maps.model.Polyline': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Method] void setStartCap(com.huawei.hms.maps.model.Cap p0)' in '[Class] com.huawei.hms.maps.model.Polyline': Type 'com.huawei.hms.maps.model.Cap' was not found.
Error while processing '[Constructor] Polyline(com.huawei.hms.maps.model.internal.IPolylineDelegate p0)' in '[Class] com.huawei.hms.maps.model.Polyline': Type 'com.huawei.hms.maps.model.internal.IPolylineDelegate' was not found.
Error while processing '[Constructor] TileOverlay(com.huawei.hms.maps.model.internal.ITileOverlayDelegate p0)' in '[Class] com.huawei.hms.maps.model.TileOverlay': Type 'com.huawei.hms.maps.model.internal.ITileOverlayDelegate' was not found.
Error while processing type '[Class] com.huawei.hms.maps.model.UrlTileProvider': Type 'com.huawei.hms.maps.model.TileProvider' was not found.
Error while processing '[Method] android.view.View getInfoContents(com.huawei.hms.maps.model.Marker p0)' in '[Interface] com.huawei.hms.maps.HuaweiMap.InfoWindowAdapter': Type 'com.huawei.hms.maps.model.Marker' was not found.
Error while processing '[Method] android.view.View getInfoWindow(com.huawei.hms.maps.model.Marker p0)' in '[Interface] com.huawei.hms.maps.HuaweiMap.InfoWindowAdapter': Type 'com.huawei.hms.maps.model.Marker' was not found.
Error while processing '[Method] void onInfoWindowClick(com.huawei.hms.maps.model.Marker p0)' in '[Interface] com.huawei.hms.maps.HuaweiMap.OnInfoWindowClickListener': Type 'com.huawei.hms.maps.model.Marker' was not found.
Error while processing '[Method] void onInfoWindowClose(com.huawei.hms.maps.model.Marker p0)' in '[Interface] com.huawei.hms.maps.HuaweiMap.OnInfoWindowCloseListener': Type 'com.huawei.hms.maps.model.Marker' was not found.
Error while processing '[Method] void onInfoWindowLongClick(com.huawei.hms.maps.model.Marker p0)' in '[Interface] com.huawei.hms.maps.HuaweiMap.OnInfoWindowLongClickListener': Type 'com.huawei.hms.maps.model.Marker' was not found.
Error while processing '[Method] void onMapClick(com.huawei.hms.maps.model.LatLng p0)' in '[Interface] com.huawei.hms.maps.HuaweiMap.OnMapClickListener': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Method] void onMapLongClick(com.huawei.hms.maps.model.LatLng p0)' in '[Interface] com.huawei.hms.maps.HuaweiMap.OnMapLongClickListener': Type 'com.huawei.hms.maps.model.LatLng' was not found.
Error while processing '[Method] boolean onMarkerClick(com.huawei.hms.maps.model.Marker p0)' in '[Interface] com.huawei.hms.maps.HuaweiMap.OnMarkerClickListener': Type 'com.huawei.hms.maps.model.Marker' was not found.
Error while processing '[Method] void onMarkerDrag(com.huawei.hms.maps.model.Marker p0)' in '[Interface] com.huawei.hms.maps.HuaweiMap.OnMarkerDragListener': Type 'com.huawei.hms.maps.model.Marker' was not found.
Error while processing '[Method] void onMarkerDragEnd(com.huawei.hms.maps.model.Marker p0)' in '[Interface] com.huawei.hms.maps.HuaweiMap.OnMarkerDragListener': Type 'com.huawei.hms.maps.model.Marker' was not found.
Error while processing '[Method] void onMarkerDragStart(com.huawei.hms.maps.model.Marker p0)' in '[Interface] com.huawei.hms.maps.HuaweiMap.OnMarkerDragListener': Type 'com.huawei.hms.maps.model.Marker' was not found.
Error while processing '[Method] void onPoiClick(com.huawei.hms.maps.model.PointOfInterest p0)' in '[Interface] com.huawei.hms.maps.HuaweiMap.OnPoiClickListener': Type 'com.huawei.hms.maps.model.PointOfInterest' was not found.
Error while processing type '[Interface] com.huawei.hms.maps.MapLifecycleDelegate': Type 'com.huawei.hms.feature.dynamic.LifecycleDelegate' was not found.
Error while processing type '[Interface] com.huawei.hms.maps.StreetLifecycleDelegate': Type 'com.huawei.hms.feature.dynamic.LifecycleDelegate' was not found.
Error while processing '[Method] void onStreetViewPanoramaCameraChange(com.huawei.hms.maps.model.StreetViewPanoramaCamera p0)' in '[Interface] com.huawei.hms.maps.StreetViewPanorama.OnStreetViewPanoramaCameraChangeListener': Type 'com.huawei.hms.maps.model.StreetViewPanoramaCamera' was not found.
Error while processing '[Method] void onStreetViewPanoramaChange(com.huawei.hms.maps.model.StreetViewPanoramaLocation p0)' in '[Interface] com.huawei.hms.maps.StreetViewPanorama.OnStreetViewPanoramaChangeListener': Type 'com.huawei.hms.maps.model.StreetViewPanoramaLocation' was not found.
Error while processing '[Method] void onStreetViewPanoramaClick(com.huawei.hms.maps.model.StreetViewPanoramaOrientation p0)' in '[Interface] com.huawei.hms.maps.StreetViewPanorama.OnStreetViewPanoramaClickListener': Type 'com.huawei.hms.maps.model.StreetViewPanoramaOrientation' was not found.
Error while processing '[Method] void onStreetViewPanoramaLongClick(com.huawei.hms.maps.model.StreetViewPanoramaOrientation p0)' in '[Interface] com.huawei.hms.maps.StreetViewPanorama.OnStreetViewPanoramaLongClickListener': Type 'com.huawei.hms.maps.model.StreetViewPanoramaOrientation' was not found.
Error while processing type '[Class] com.huawei.hms.maps.MapFragment.MapFragmentLifecycleDelegate': Type 'com.huawei.hms.maps.MapLifecycleDelegate' was not found.
Error while processing type '[Class] com.huawei.hms.maps.MapView.MapViewLifecycleDelegate': Type 'com.huawei.hms.maps.MapLifecycleDelegate' was not found.
Error while processing type '[Class] com.huawei.hms.maps.StreetViewPanoramaFragment.StreetFragmentLifecycleDelegate': Type 'com.huawei.hms.maps.StreetLifecycleDelegate' was not found.
Error while processing type '[Class] com.huawei.hms.maps.StreetViewPanoramaView.StreetViewLifecycleDelegate': Type 'com.huawei.hms.maps.StreetLifecycleDelegate' was not found.
Error while processing type '[Class] com.huawei.hms.maps.SupportMapFragment.SupportMapFragmentLifecycleDelegate': Type 'com.huawei.hms.maps.MapLifecycleDelegate' was not found.
Error while processing type '[Class] com.huawei.hms.maps.SupportStreetViewPanoramaFragment.SupportStreetViewPanoramaFragmentLifecycleDelegate': Type 'com.huawei.hms.maps.StreetLifecycleDelegate' was not found.

This is the list of issues found when trying to generate bindings for the Java libraries. What happens is when we can't find a a referenced Java type, we cannot bind the method or class that uses that referenced type. So we remove the method or class because we couldn't bind it. And that method or class may have been needed by another method or class, and now it cannot be bound. This can create a chaining effect that causes lots of things to not be bound.

So let's take your first error:

HuaweiMap_OnInfoWindowClickListenerImplementor is not abstract and does not override abstract method onInfoWindowClick(Marker) in OnInfoWindowClickListener

If we look at the generated code in obj\Debug\generated\src\Com.Huawei.Hms.Mapes.HuaweiMap.cs we can see that the interface exists but has no members:

public partial interface IOnInfoWindowClickListener : IJavaObject {
}

Looking in the error log above, we can see the method OnInfoWindowClick was not bound because it couldn't find the parameter type of Marker:

Error while processing '[Method] void onInfoWindowClick(com.huawei.hms.maps.model.Marker p0)' in '[Interface] com.huawei.hms.maps.HuaweiMap.OnInfoWindowClickListener': Type 'com.huawei.hms.maps.model.Marker' was not found.

Looking elsewhere in the error log, it looks like the Marker class couldn't be bound because one of its methods required MarkerOptions:

Error while processing '[Method] com.huawei.hms.maps.model.Marker addMarker(com.huawei.hms.maps.model.MarkerOptions p0)' in '[Class] com.huawei.hms.maps.HuaweiMap': Type 'com.huawei.hms.maps.model.MarkerOptions' was not found.

So the root of the issue seems to be that com.huawei.hms.maps.model.MarkerOptions could not be found. Is this type included in the Jars that you reference? Or are you maybe missing a Jar?

omernaser commented 4 years ago

when i go to the aidl folder inside the aar file i will find this file MarkerOptions so i think is exist image

jpobst commented 4 years ago

Ah, MarkerOptions is defined in maps-base-4.0.0.301.aar and not maps-4.0.0.301.aar. A binding project for .aar's can only bind a single .aar file. You will need to make a separate project for each .aar you want to bind, and then set up project references between the projects.

In this case, the Maps project will need to reference the Maps-Base project.

https://docs.microsoft.com/en-us/xamarin/android/platform/binding-java-library/binding-an-aar

omernaser commented 4 years ago

i got this but when i try to bind map base i will get the following error image

"Severity Code Description Project File Line Suppression State Error CS0111 Type 'Maphttpam' already defines a member called 'A' with the same parameter types basemap ~\source\repos\aarbinding\basemap\obj\Debug\generated\src\Com.Huawei.Hmsmapaa.Hmsmapaa.Hmsmapaa.Hmsmapab.Maphttpam.cs 190 Active"

any idea to solve this one ??

jpobst commented 4 years ago

It is saying that you have 2 members named A in that class. If you double-click the error you should see the generated .cs file. Once you find the duplicate members, you will need to remove or rename one of them using metadata:

https://docs.microsoft.com/en-us/xamarin/android/platform/binding-java-library/customizing-bindings/java-bindings-metadata#removing-types

https://docs.microsoft.com/en-us/xamarin/android/platform/binding-java-library/customizing-bindings/java-bindings-metadata#renaming-members

omernaser commented 4 years ago

Hello dear i fix all the binding lib error but still i have the same main error appears after add the DLL reference and try to run the android app so your help is very needed i tried every thing i know nothing work please refer to the following link to get the sample solution one contains the binding library's (DLL) and the other one for android project image

https://1drv.ms/u/s!AlToIo46UOgSjHGvk3-FR0kwhFPv?e=GIkKHL

jpobst commented 4 years ago

From the build log:

1>  Error while processing '[Method] com.huawei.hms.feature.dynamic.IObjectWrapper getInfoContents(com.huawei.hms.maps.model.internal.IMarkerDelegate p0)' in '[Interface] com.huawei.hms.maps.internal.IInfoWindowAdapter': Type 'com.huawei.hms.feature.dynamic.IObjectWrapper' was not found. (TaskId:66)
1>  Error while processing '[Method] com.huawei.hms.feature.dynamic.IObjectWrapper getInfoWindow(com.huawei.hms.maps.model.internal.IMarkerDelegate p0)' in '[Interface] com.huawei.hms.maps.internal.IInfoWindowAdapter': Type 'com.huawei.hms.feature.dynamic.IObjectWrapper' was not found. (TaskId:66)

It cannot find the IObjectWrapper type, which is in the XHmsDynamicApi project. The XHmsMapsBase project is just missing a reference to the XHmsDynamicApi project, and then it compiles. 😄

VaslD commented 4 years ago

Most "is not abstract and does not override" errors are due to Xamarin.Android (or compiled Java classes) not supporting generics on critical Android/Java components.

Take RecycleView for example.

Suppose you have a Java class:

public class CustomAdapter extends RecyclerView.Adapter<CustomViewHolder> {
    // ...
    @NonNull
    @Override
    public CustomViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        // ...
    }
}

It actually becomes the following C# class during Xamarin bindings because the compiled Java class lacks the information of generics, so Xamarin couldn't really reverse-engineer non-existent information:

public partial class CustomAdapter : global::Android.Support.V7.Widget.RecyclerView.Adapter
{
    // ...
    public override unsafe object OnCreateViewHolder (global::Android.Views.ViewGroup parent, int viewType)
        // ...
    }
}

Note the return type in the overridden function is different; so different to a point that Xamarin doesn't even know CustomViewHolder is at least a ViewHolder, it uses the absolute base class System.Object instead. This causes a problem because Xamarin's Android.Support.V7.Widget.RecyclerView.Adapter defines that OnCreateViewHolder(ViewGroup, int) should return a Android.Support.V7.Widget.RecyclerView.ViewHolder.

Sometimes it's the other way around: Xamarin bindings successfully determines the subclass of function parameters but Xamarin.Android uses System.Object in the framework. The override still doesn't happen due to mismatched signatures. This usually appears when the generic type used in a bound library is a well-known Android or Java framework type.

Both requires user-intervention to tweak auto generated C# source code. It is usually done by editing Transforms\Metadata.xml.

<metadata>
    <attr
        path="/api/package[@name='com.some.package']/class[@name='SomeAdapter']/method[@name='onCreateViewHolder' and count(parameter)=2 and parameter[1][@type='android.view.ViewGroup'] and parameter[2][@type='int']]"
        name="managedReturn">
        Android.Support.V7.Widget.RecyclerView.ViewHolder
    </attr>
    <attr
        path="/api/package[@name='com.some.package']/class[@name='SomeComparator']/method[@name='compare' and count(parameter)=2 and parameter[1][@type='java.io.File'] and parameter[2][@type='java.io.File']]/parameter[1]"
        name="managedType">
        Java.Lang.Object
    </attr>
    <attr
        path="/api/package[@name='com.some.package']/class[@name='SomeComparator']/method[@name='compare' and count(parameter)=2 and parameter[1][@type='java.io.File'] and parameter[2][@type='java.io.File']]/parameter[2]"
        name="managedType">
        Java.Lang.Object
    </attr>
    <!-- ... -->
</metadata>

The first attribute tag changes the return type of function OnCreateViewHolder (from Xamarin-determined object) to Android.Support.V7.Widget.RecyclerView.ViewHolder. The second and third attribute tags change both parameters of a Compare function in a custom Comparator class that compares Java.IO.File to match Xamarin's Compare(object, object) signature so the Comparator can implement Java.Util.IComparator.

There is no easy way to do this. You will need to review the intermediate source code by clicking on a build error, compare that with the original Java source and Xamarin.Android's framework class/function signatures (in Object Browser).

Sometimes you even need to write bridge code in bindings' Additions to overcome errors that couldn't be fixed by simply changing types. "Not abstract and does not override" is usually not one of those errors, but there are other warnings during Xamarin bindings you have to fix. Binding warnings usually lead to runtime crashes or incomplete bindings (build successful but no binding in DLL).

Definitely a hassle especially when you have a bunch of Java classes depending on each other AND one mismatched function signature causes a million errors AND you have to fix them one by one. But according to many analysis articles I read, there isn't really much Xamarin can do about it. It's all Java's fault. (Or at least it was. I don't know if Java and Xamarin had both evolved somehow and this issue is now tackle-able.)

VaslD commented 4 years ago

There is another solution that may be useful but limited to implicitly referenced classes only. If you have a package A that depends on B but doesn't actually uses anything from B in user-facing code. (In other words A calls B in private logic chain and does not expose any types or functions from B.) You can generate a dummy binding for B that has no C# code (it only has Java classes) but can be referenced in a C# project, namely A.

I have a binding for HMS's PushKit here that uses this technique on referenced modules such as com.huawei.hmf:tasks. Check out each bindings Transforms\Metadata.xml.

Again, if you do this, nothing from com.huawei.hmf:tasks can be accessed from C# (in either another HMS module bindings or user app/module). When an HMS module uses com.huawei.hmf:tasks's type or function in its public signatures, the bindings for this module will fail or will be incomplete to end-user.

jpobst commented 4 years ago

There doesn't seem to be any currently unresolved questions on this issue, so I'm going to close it. Feel free to open a new issue if there are additional issues.