Xamarin: Android bindings library could not build

It seems, the new Visual Studio 2019 release with version 16.7 could not build the AndroidBindings projects. (For further information about what is an android binding proj, see: https://docs.microsoft.com/en-us/xamarin/android/platform/binding-java-library/)

The compiler gives the following error message:

...\MSBuild\Xamarin\Android\Xamarin.Android.Bindings.targets(327,5): warning MSB6002: The command-line for the "BindingsGenerator" task is too long. Command-lines longer than 32000 characters are likely to fail. Try reducing the length of the command-line by breaking down the call to "BindingsGenerator" into multiple calls with fewer parameters per call.

Workarounds like: Change the path of the soulution to shorter one does not seems to work.
The only solution for the problem was to downgrade VisualStudio to 16.5.4 (to the last working one for me)

This content has 4 years. Some of the information in this post may be out of date or no longer work. Please, read this page keeping its age in your mind.

Xamarin Android: Native image scaling, images are pixelated

If you use Android’s native image scaling, from ldpi, mdpi, hdpi, to xxxhdpi, and have all the image resource in the right directory of your Xamarin.Android project folder, and find the pictures displaying pixelated: Make sure, you are correctly set the Build action for each images to AndroidResource. When adding an existing item to the resources folder from Windows version of VisualStudio’s browse dialog, the Build action will be set to BundleResource, and won’t appear in the Resources.designer.cs file, so it will be unavailable to use from code. If the picture is displaying, but it is pixelated, you may check the higher DPI version image files, have the correct buid action

This content has 4 years. Some of the information in this post may be out of date or no longer work. Please, read this page keeping its age in your mind.

Xamarin Android: “Program type already present”

AndroidX migráció után a következő hibaüzenettel nem fordul le az alkalmazás:

D8 : error : Program type already present: android.support.v4.app.INotificationSideChannel$Stub$Proxy

Próbáltam mindent, kitöröltem a lokális NuGet Cache-t, az összes bin és obj mappát, Cleanelni a Solutiont, Restoreolni a NuGet-eket. Nem járt eredménnyel semmi sem. Aztán nyitottam egy hibát az AndroidX repo-n (https://github.com/xamarin/AndroidX/issues/100) , ahol a megszokotthoz képest lassan reagáltak, akkor sem tudtak érdemben segíteni, így magamnak kellett megoldást találni a problémára.

Elsőre feltelepítettem egy virtuális gépre friss Windows 10-et, rá pedig egy 2019-es Visual Studio Community-t. Lecloneoztam a repositoryt, megfordítottam, és sikeresen lefordult. Itt már gondoltam, hogy valami specifikus hiba lesz. Pár hétre jegelve lett a projekt, majd végül a megoldása az lett, hogy a host gépen teljesen eltávolítottam fizikailag az Azure DevOps GIT alapú repositoryt, majd újra leszedtem a remote-ról, és működött.

This content has 4 years. Some of the information in this post may be out of date or no longer work. Please, read this page keeping its age in your mind.

Xamarin Forms: “AllowUnsecureUrls” by “XamarinDownloadArchives”

Fordításnál (jellemzően Windowsos Visual Studioban git alapú branch váltásnál) a következő hibát kapjuk:

MSB4064: The "AllowUnsecureUrls" parameter is not supported by the "XamarinDownloadArchives" task. Verify the parameter exists on the task, and it is a settable public instance property.

Számomra minden esetben az IDE újraindítása odja meg a problémát.

This content has 4 years. Some of the information in this post may be out of date or no longer work. Please, read this page keeping its age in your mind.

Xamarin iOS: UIWebView Deprecation megoldása

Április 30-tól az AppStore-ba nem tölthetjük fel az UIWebView implementációt tartalmazó binárisainkat. Erről korábban írtam már a blogon, hogy miért problémás, a Xamarin fejlesztésnél ez a történet.

Amennyiben sikerült felimádkoznunk a legfrissebb csomagokat a Solutionre, abban az esetben az iOS projekt mtouch argumentumai közé a következőt kell beállítanunk:

--optimize=experimental-xforms-product-type 

Figyelni kell rá, hogy ahol CustomWebViewRenderer-t használunk, ott az ősosztály ne WebViewRenderer legyen, hanem WKWebViewRenderer.

Ezen felül a linking-nél a linker behaviourt vagy Link all, vagy Link Framework SDK-s only-ra kell állítani.

This content has 4 years. Some of the information in this post may be out of date or no longer work. Please, read this page keeping its age in your mind.