Unable to get gRPC to work in Xamarin Android - xamarin

I have created a Xamarin Android project. Via NuGet, I have added a reference to the Grpc package.
In my activity, I want to create a Grpc.Core.Server instance, but it won't let me because of the following runtime error:
System.IO.FileNotFoundException: Error loading native library. Not found in any of the possible locations: /storage/emulated/0/Android/data/DecodingPoC.DecodingPoC/files/.override/libgrpc_csharp_ext.x64.so,/storage/emulated/0/Android/data/DecodingPoC.DecodingPoC/files/.override/runtimes/linux/native/libgrpc_csharp_ext.x64.so,/storage/emulated/0/Android/data/DecodingPoC.DecodingPoC/files/.override/../../runtimes/linux/native/libgrpc_csharp_ext.x64.so
I haven't been able to find any information on this for Xamarin, only iOS, so I am hoping someone here can provide a suggestion on how to proceed.

Please note that gRPC c# support for Xamarin is currently experimental. The stable packages in nuget.org don't provide the support yet (that will change with the upcoming v1.15.x release).
See HelloWorldXamarin instructions on how to obtain the correct nuget package (or use the https://www.nuget.org/packages/Grpc.Core/1.15.0-pre1 pre-release package which already supports Xamarin):
https://github.com/grpc/grpc/tree/master/examples/csharp/HelloworldXamarin#experimental-only
You might also need this workaround if you are using Xamarin.Forms: https://github.com/grpc/grpc/issues/16250

Related

Nuget Packages , Xamarin and UWP

Failing to extend my existing project with UWP , i search for reason why certain existing projects can't be extended with UWP.
Here i get an answer that all the nuget packages of X.shared project should be the same(with the same version) in the UWP project.
However , even after doing that the project failed to start , so i asked in the
xamarin-docs github and they tell me that the cause is a nuget package supported only in Ios and Android.
So my question is :
Should all the nuget packages be the same for *.ios *.droid, **.\shared and *.uwp ?
And what if i have other projects(not xamarin projects) in my solution ?
You don't understand the architecture of Xamarin and it is hard to answer in one paragraph, further reading of documentation instead of your constant asking of basically the same question on different places (please note that on the github you where warned that it was not the place to ask such a question) is highly advised.
But I'll try to answer. The package may use (or even need to use) native APIs to achieve some functionalities. Those native APIs are available only on one platform and such code is useless on another platform. So the package author in that case must write the separate implementation for each platform that he wants to support. He may cover just one platform or two or three, it is up to the package author. If the platform is not supported by the package and contains the native APIs, there is almost nothing that you can do aside to write your own implementation of the package for that. Even if you succeed in installing it won't work.

How to integrate SSO login in Xamarin

Can you please help me to integrate Single-Sign-On login in Xamarin, Any one gives initiative Idea about it are highly appreciable.
Severity Code Description Project File Line Suppression State
Error Could not install package 'Sunpoin.SSO.Plugin 1.0.0'. You are trying to install this package into a project that targets 'MonoAndroid,Version=v7.0', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author. 0
I think Sunpoin.SSO.Plugin is a plugin for websites. You must use one that is compatible with MonoAndroid and if possible with PCL binaries.
I recommend you use Xamarin.Auth this component helps you to make an SSO in your Xamarin app.
Here's the best example in StackOverFlow and a tutorial on it.
Good luck

Xamarin Forms SignaturePad updated

I have tricky question about SignaturePad updated to Xamarin Forms 2.0, link to GitHub:
https://github.com/mrbelk/acr-xamarin-forms
I did manage to download repo and build it, however I have no idea how to produce proper DLLs that I could use in my project?
The main issue is that SignaturePadView is treated as Xamarin Forms View class instead of Android View, so there is different constructors, methods, etc.
Does smb know how to build these projects to produce proper dlls that iOS/Android solution will treat SignaturePadView as Android View and iOS UIView respectively?
Don't use acr.* any more if you want to save yourself some pain. I had to pull their camera implementation out of one of my apps due to no support for forms 2.0+.
Replace acr with supported NuGets like Plugin.Media and the others found here. For this particular issue no one has created a non-deprecated NuGet so there is this plugin as an option.
Apparently, it happens that we have actually used SignaturePad from https://components.xamarin.com/view/signature-pad but via acr.* nuget package.
What I found in my quick research that both acr.xamforms.SignaturePad and SignaturePad it self were in acr nuget package, and actually we were using components from SignaturePad, luckily. So I did remove this nuget from sln to get rid of acr.* components and add SignaturePad from xamarin components by hand.
Now we are able to use Xamarin Forms 2.0 without any problems.
Cheers,
G

Xamarin Android Support V4 error

I started a new default working project in xamarin and I added the dll references for Xamarin.Android.Support.V4 and Xamarin.Android.Support.V7.AppCompat and I am getting errors.
Error: package android.support.v4.app.FragmentManager does not exist
android.support.v4.app.FragmentManager.OnBackStackChangedListener
Error: package android.support.v4.content.Loader does not exist
android.support.v4.content.Loader.OnLoadCompleteListener
...
What have I done wrong?
You needed to actually install the support library. MonoDroid has .NET bindings for it, but the underlying java can't build without it, of course. Here are instructions for getting the support library and instructions for hooking it up to a MonoDroid project.
See also http://developer.xamarin.com/Guides/Android/Platform_Features/Fragments/Part_4_-_Providing_Backwards_Compatibility_with_the_Android_Support_Package/#Adding_The_V4_Libraries_to_a_Mono_for_Android_Project
This might be related to this or this, which were solutions to common problems in the rev. 22 update.
try calling it with this:
using Android.Support.V4;
I was reading another post in the xamarin forms with the same issue and this worked for me. I spent maybe an hour trying to figure out what to do and the guy I ran into said just to:
clean the solution,
rebuild it,
then it should be fixed.
Assuming the packages are still installed

NoClassDefFoundError: android.support.v4.app when sending push?

Im using PushBots to manage my push notifications for my app, I have been using this amazing platform for lots of apps and its the first time I have a problem like this.
Sometimes, when I launch the app, I get this error, but always when receiving a push (within or whitout the app opened).
07-12 01:20:00.844: E/AndroidRuntime(12140): FATAL EXCEPTION: IntentService[GCMIntentService-326*****5*9-1]
07-12 01:20:00.844: E/AndroidRuntime(12140): Process: com.karlol.mo***, PID: 12140
07-12 01:20:00.844: E/AndroidRuntime(12140): java.lang.NoClassDefFoundError: android.support.v4.app.NotificationManagerCompat
> //This is just the beginning of the log, there's more with some
> Pushbots handler info and stuff.... Let me know if I need to post it,
> its a lot.
Im pretty sure this is about the android support v4, this is my current build path:
*Sometimes when I uncheck the Private Libraries clean and re-check this option again the app works (but not lucky with notifications).
The support v4 jar is in the libs folder, the route is the correct (MyApp/libs)
Im about to release an update, my app is already working/running with pushbots servers (with registered devices and all) so I would like to solve this to release my update. Thanks.
As explained in these questions: NotificationManagerCompat Can't be resolved - Android Wear and Android studio unable to import WearableExtender NotificationManagerCompat and RemoteInput. It seems that you are not using the last version of the compatibility support library. You have two options to solve that:
Download the newest libraries manually, and add them to your project.
It seems that you are using eclipse, I recommend that you now use Android Studio so you can add the dependency and let gladle handle the libraries, like this
dependencies {
compile 'com.android.support:support-v4:20.0+'
}
check mark the following jars in build path or property ,it will work
1. android-support-v4.jar(appcombat/ibs)
2.android-support-v4-appcombat.jar(appcombat/ibs)

Resources