2

I am trying to get gRPC working with Xamarin.

I know you may think that it is duplicated issue, cause there are similar questions on stackoverflow regarding that error, but I have tried consolidate all references and nuget packages, tried clean project and rebuild.

I have tried Xamarin.Forms, Xamarin Android projects on Windows 7 and Windows 10. All of them have the same error. Getting exception in line:

Channel channel = new Channel(ip, port, ChannelCredentials.Insecure);

Exception:

"Could not resolve type with token 0100002b (from typeref, class/assembly System.Runtime.Loader.AssemblyLoadContext, System.Runtime.Loader, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)"

Output:

10-16 10:19:28.057 D/Mono(13519): Assembly Ref addref Grpc.Core[0x7f9e5ad500] -> System.Core[0x7f89b19500]: 4
10-16 10:19:28.062 D/Mono    (13519): Image addref System[0x7f89750280] -> System.dll[0x7f89a5e000]: 2
10-16 10:19:28.062 D/Mono(13519): Prepared to set up assembly 'System' (System.dll)
10-16 10:19:28.062 D/Mono(13519): Assembly System[0x7f89750280] added to domain RootDomain, ref_count = 1
10-16 10:19:28.076 D/Mono(13519): AOT: image 'System.dll.so' not found: dlopen failed: library "/data/app/GarmentInventoryAndroidApp.GarmentInventoryAndroidApp-1/lib/arm64/libaot-System.dll.so" not found
10-16 10:19:28.084 D/Mono(13519): AOT: image '/usr/local/lib/mono/aot-cache/arm64/System.dll.so' not found: dlopen failed: library "/data/app/GarmentInventoryAndroidApp.GarmentInventoryAndroidApp-1/lib/arm64/libaot-System.dll.so" not found
10-16 10:19:28.084 D/Mono(13519): Config attempting to parse: 'System.dll.config'.
10-16 10:19:28.084 D/Mono(13519): Config attempting to parse: '/usr/local/etc/mono/assemblies/System/System.config'.
10-16 10:19:28.084 D/Mono(13519): Assembly Ref addref System.Core[0x7f89b19500] -> System[0x7f89750280]: 2
10-16 10:19:28.085 D/Mono    (13519): Assembly Ref addref System[0x7f89750280] -> mscorlib[0x7fb0aa3e00]: 16
Loaded assembly: System.dll[External]
10-16 10:19:28.134 D/Mono(13519): Assembly Loader probing location: '/storage/emulated/0/Android/data/GarmentInventoryAndroidApp.GarmentInventoryAndroidApp/files/.__override__/System.Runtime.Loader.dll'.
10-16 10:19:28.134 D/Mono(13519): Image addref System.Runtime.Loader[0x7f89750380] -> /storage/emulated/0/Android/data/GarmentInventoryAndroidApp.GarmentInventoryAndroidApp/files/.__override__/System.Runtime.Loader.dll[0x7f8975e800]: 2
10-16 10:19:28.135 D/Mono(13519): Prepared to set up assembly 'System.Runtime.Loader' (/storage/emulated/0/Android/data/GarmentInventoryAndroidApp.GarmentInventoryAndroidApp/files/.__override__/System.Runtime.Loader.dll)
10-16 10:19:28.135 D/Mono(13519): Assembly System.Runtime.Loader[0x7f89750380] added to domain RootDomain, ref_count= 1
10-16 10:19:28.138 D/Mono    (13519): AOT: image '/storage/emulated/0/Android/data/GarmentInventoryAndroidApp.GarmentInventoryAndroidApp/files/.__override__/System.Runtime.Loader.dll.so' not found: dlopen failed: library "/data/app/GarmentInventoryAndroidApp.GarmentInventoryAndroidApp-1/lib/arm64/libaot-System.Runtime.Loader.dll.so" not found
10-16 10:19:28.143 D/Mono(13519): AOT: image '/usr/local/lib/mono/aot-cache/arm64/System.Runtime.Loader.dll.so' not found: dlopen failed: library "/data/app/GarmentInventoryAndroidApp.GarmentInventoryAndroidApp-1/lib/arm64/libaot-System.Runtime.Loader.dll.so" not found
10-16 10:19:28.143 D/Mono(13519): Assembly Loader loaded assembly from location: '/storage/emulated/0/Android/data/GarmentInventoryAndroidApp.GarmentInventoryAndroidApp/files/.__override__/System.Runtime.Loader.dll'.
10-16 10:19:28.143 D/Mono(13519): Config attempting to parse: '/storage/emulated/0/Android/data/GarmentInventoryAndroidApp.GarmentInventoryAndroidApp/files/.__override__/System.Runtime.Loader.dll.config'.
10-16 10:19:28.143 D/Mono(13519): Config attempting to parse: '/usr/local/etc/mono/assemblies/System.Runtime.Loader/System.Runtime.Loader.config'.
10-16 10:19:28.143 D/Mono(13519): Assembly Ref addref Grpc.Core[0x7f9e5ad500] -> System.Runtime.Loader[0x7f89750380]: 2
10-16 10:19:28.144 W/Mono    (13519): The request to load the assembly mscorlib v4.0.0.0 was remapped to v2.0.5.0
10-16 10:19:28.144 D/Mono(13519): Assembly Ref addref System.Runtime.Loader[0x7f89750380] -> mscorlib[0x7fb0aa3e00]: 17
Loaded assembly: /storage/emulated/0/Android/data/GarmentInventoryAndroidApp.GarmentInventoryAndroidApp/files/.__override__/System.Runtime.Loader.dll[External]

Hope someone will help me. Thanks in advance!

York Shen
  • 9,014
  • 1
  • 16
  • 40
V. Smirnov
  • 65
  • 1
  • 10
  • Please be aware that gRPC C# currently doesn't have official support for Xamarin (we are using a native C library and for the core RPC functionality and invoking it via P/Invoke - which I think might be the root cause of the problem you might be seeing. gRPC C# can be made to work for Xamarin, but it requires building the right version of grpc_csharp_ext.dll native library being build manually (and possibly a few more tweaks). – Jan Tattermusch Oct 25 '17 at 12:38
  • @janTattermusch thank you for answer. – V. Smirnov Nov 30 '17 at 14:23

1 Answers1

0

Thanks for @JanTattermusch answer:

Please be aware that gRPC C# currently doesn't have official support for Xamarin (we are using a native C library and for the core RPC functionality and invoking it via P/Invoke - which I think might be the root cause of the problem you might be seeing. gRPC C# can be made to work for Xamarin, but it requires building the right version of grpc_csharp_ext.dll native library being build manually (and possibly a few more tweaks).

V. Smirnov
  • 65
  • 1
  • 10
  • Can you please share the solution of the above problem? I'm facing same issue while trying to connect with Google's Datastore. – waghekapil Feb 27 '19 at 14:07