Ffimageloading: Xamarin Forms 3.6 issue

Created on 6 Mar 2019  路  14Comments  路  Source: luberda-molinet/FFImageLoading

Description

Can not build anymore on Bitrise with Xamarin Forms 3.6

I see XF 3.6 has a breaking change related to this PR, and there's been some previous discussion.
https://github.com/xamarin/Xamarin.Forms/pull/5398
"[Android] Remove changes to IVisualElementRenderer so it remains backwards compatible"

Any guidance on this? Thanks.

Steps to Reproduce

Build failure when updating to XF 3.6 from 3.5

Expected Behavior

Build to pass

Actual Behavior

Build faiils

Basic Information

  • Version with issue: latest stable and also latest pre release are both not working
  • Last known good version: latest stable with XF 3.5
  • Platform: Android

Reproduction Link / Code

`` /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: The "LinkAssemblies" task failed unexpectedly. [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj] /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: Mono.Linker.MarkException: Error processing method: 'System.Void FFImageLoading.Forms.Platform.CachedImageFastRenderer::Xamarin.Forms.Platform.Android.IVisualElementRenderer.add_LayoutChange(System.EventHandler1)' in assembly: 'FFImageLoading.Forms.Platform.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve System.Void Xamarin.Forms.Platform.Android.IVisualElementRenderer::add_LayoutChange(System.EventHandler`1) [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: at Mono.Linker.Steps.MarkStep.HandleUnresolvedMethod (Mono.Cecil.MethodReference reference) [0x00013] in <78f051a6e2064f849cc3ee585300af39>:0 [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: at Mono.Linker.Steps.MarkStep.MarkMethod (Mono.Cecil.MethodReference reference) [0x0004a] in <78f051a6e2064f849cc3ee585300af39>:0 [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: at Mono.Linker.Steps.MarkStep.ProcessMethod (Mono.Cecil.MethodDefinition method) [0x000d3] in <78f051a6e2064f849cc3ee585300af39>:0 [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: at Mono.Linker.Steps.MarkStep.ProcessQueue () [0x0001b] in <78f051a6e2064f849cc3ee585300af39>:0 [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: --- End of inner exception stack trace --- [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: at Mono.Linker.Steps.MarkStep.ProcessQueue () [0x00047] in <78f051a6e2064f849cc3ee585300af39>:0 [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue () [0x0000a] in <78f051a6e2064f849cc3ee585300af39>:0 [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: at Mono.Linker.Steps.MarkStep.Process () [0x00102] in <78f051a6e2064f849cc3ee585300af39>:0 [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: at Mono.Linker.Steps.MarkStep.Process (Mono.Linker.LinkContext context) [0x0000d] in <78f051a6e2064f849cc3ee585300af39>:0 [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: at MonoDroid.Tuner.MonoDroidMarkStep.Process (Mono.Linker.LinkContext context) [0x0000b] in <78f051a6e2064f849cc3ee585300af39>:0 [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: at Mono.Linker.Pipeline.Process (Mono.Linker.LinkContext context) [0x0001c] in <78f051a6e2064f849cc3ee585300af39>:0 [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: at MonoDroid.Tuner.Linker.Run (Mono.Linker.Pipeline pipeline, Mono.Linker.LinkContext context) [0x00000] in <78f051a6e2064f849cc3ee585300af39>:0 [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: at MonoDroid.Tuner.Linker.Process (MonoDroid.Tuner.LinkerOptions options, Mono.Linker.ILogger logger, Mono.Linker.LinkContext& context) [0x00071] in <78f051a6e2064f849cc3ee585300af39>:0 [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: at Xamarin.Android.Tasks.LinkAssemblies.Execute (Java.Interop.Tools.Cecil.DirectoryAssemblyResolver res) [0x002d4] in <78f051a6e2064f849cc3ee585300af39>:0 [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: at Xamarin.Android.Tasks.LinkAssemblies.Execute () [0x0021f] in <78f051a6e2064f849cc3ee585300af39>:0 [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () [0x00029] in <7b80049ba212460da3a78bdfcc799ef4>:0 [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2129,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (Microsoft.Build.BackEnd.ITaskExecutionHost taskExecutionHost, Microsoft.Build.BackEnd.Logging.TaskLoggingContext taskLoggingContext, Microsoft.Build.BackEnd.TaskHost taskHost, Microsoft.Build.BackEnd.ItemBucket bucket, Microsoft.Build.BackEnd.TaskExecutionMode howToExecuteTask) [0x001f6] in <7b80049ba212460da3a78bdfcc799ef4>:0 [/Users/vagrant/git/src/MyApp.Android/MyApp.Android.csproj]

````

Android duplicate

Most helpful comment

FYI v2.4.3.840 seems to be working

All 14 comments

I have very similar case - after upgrade to xf3.6 the code compiles fine but fails in runtime during startup of the app. The exception looks like this:

[MonoDroid] UNHANDLED EXCEPTION: [MonoDroid] System.TypeLoadException: Could not load list of method overrides due to Method not found: void Xamarin.Forms.Platform.Android.IVisualElementRenderer.add_LayoutChange(System.EventHandler`1<Android.Views.View/LayoutChangeEventArgs>) [MonoDroid] at Quality.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle) [0x0004b] in /Users/noster/dev/tp/qualityapp/Quality/Droid/MainActivity.cs:61 [MonoDroid] at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_savedInstanceState) [0x00011] in <3faca578033c421aa590cc3addd3b6d8>:0 [MonoDroid] at (wrapper dynamic-method) System.Object.16(intptr,intptr,intptr) [ject.qualityde] JNI RegisterNativeMethods: attempt to register 0 native methods for android.runtime.JavaProxyThrowable [Mono] DllImport searching in: '__Internal' ('(null)'). [Mono] Searching for 'java_interop_jnienv_throw'. [Mono] Probing 'java_interop_jnienv_throw'. [Mono] Found as 'java_interop_jnienv_throw'. [mono] [mono] Unhandled Exception: [mono] System.TypeLoadException: Could not load list of method overrides due to Method not found: void Xamarin.Forms.Platform.Android.IVisualElementRenderer.add_LayoutChange(System.EventHandler`1<Android.Views.View/LayoutChangeEventArgs>) [mono] at (wrapper dynamic-method) System.Object.16(intptr,intptr,intptr) [mono] at (wrapper native-to-managed) System.Object.16(intptr,intptr,intptr) [mono-rt] [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load list of method overrides due to Method not found: void Xamarin.Forms.Platform.Android.IVisualElementRenderer.add_LayoutChange(System.EventHandler`1<Android.Views.View/LayoutChangeEventArgs>) [mono-rt] at (wrapper dynamic-method) System.Object.16(intptr,intptr,intptr) [mono-rt] at (wrapper native-to-managed) System.Object.16(intptr,intptr,intptr) [ject.qualityde] java_vm_ext.cc:542] JNI DETECTED ERROR IN APPLICATION: JNI CallStaticIntMethodV called with pending exception android.runtime.JavaProxyThrowable: System.TypeLoadException: Could not load list of method overrides due to Method not found: void Xamarin.Forms.Platform.Android.IVisualElementRenderer.add_LayoutChange(System.EventHandler`1<Android.Views.View/LayoutChangeEventArgs>) [ject.qualityde] java_vm_ext.cc:542] at Quality.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle) [0x0004b] in /Users/noster/dev/tp/qualityapp/Quality/Droid/MainActivity.cs:61 [ject.qualityde] java_vm_ext.cc:542] at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_savedInstanceState) [0x00011] in <3faca578033c421aa590cc3addd3b6d8>:0 [ject.qualityde] java_vm_ext.cc:542] at (wrapper dynamic-method) System.Object.16(intptr,intptr,intptr) [ject.qualityde] java_vm_ext.cc:542] at void md51e0aad01824edea8a008c06516852ad2.MainActivity.n_onCreate(android.os.Bundle) (MainActivity.java:-2) [ject.qualityde] java_vm_ext.cc:542] at void md51e0aad01824edea8a008c06516852ad2.MainActivity.onCreate(android.os.Bundle) (MainActivity.java:46) [ject.qualityde] java_vm_ext.cc:542] at void android.app.Activity.performCreate(android.os.Bundle, android.os.PersistableBundle) (Activity.java:7136) [ject.qualityde] java_vm_ext.cc:542] at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:7127) [ject.qualityde] java_vm_ext.cc:542] at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1271) [ject.qualityde] java_vm_ext.cc:542] at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2893) [ject.qualityde] java_vm_ext.cc:542] at android.app.Activity android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.app.servertransaction.PendingTransactionActions, android.content.Intent) (ActivityThread.java:3048) [ject.qualityde] java_vm_ext.cc:542] at void android.app.servertransaction.LaunchActivityItem.execute(android.app.ClientTransactionHandler, android.os.IBinder, android.app.servertransaction.PendingTransactionActions) (LaunchActivityItem.java:78) [ject.qualityde] java_vm_ext.cc:542] at void android.app.servertransaction.TransactionExecutor.executeCallbacks(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:108) [ject.qualityde] java_vm_ext.cc:542] at void android.app.servertransaction.TransactionExecutor.execute(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:68) [ject.qualityde] java_vm_ext.cc:542] at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1808) [ject.qualityde] java_vm_ext.cc:542] at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:106) [ject.qualityde] java_vm_ext.cc:542] at void android.os.Looper.loop() (Looper.java:193) [ject.qualityde] java_vm_ext.cc:542] at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6669) [ject.qualityde] java_vm_ext.cc:542] at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2) [ject.qualityde] java_vm_ext.cc:542] at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:493) [ject.qualityde] java_vm_ext.cc:542] at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:858)

Ver.2.4.5.867-pre has the same problem

Could not load list of method overrides due to Method not found: void Xamarin.Forms.Platform.Android.IVisualElementRenderer.add_LayoutChange(System.EventHandler 1<Android.Views.View/LayoutChangeEventArgs>)

FYI v2.4.3.840 seems to be working

Ah yes v2.4.3.840 worked for me too. Reading release notes on both here and XF repo I can kind of see why this version works. I'm guessing that breaking change will be reverted now in a new FFImageLoading release? This XF breaking change also broke another nuget package in my app, downgrading that worked too.

Same here after upgrading Xamarin.Forms

I have the same issue

+1

i have the same problem wuth forms 3.6 update

@michaeldimoudis

This XF breaking change also broke another nuget package in my app, downgrading that worked too.

What other package?

@kicsiede Thanks, v2.4.3.840 is works to me

@kicsiede Thanks, v2.4.3.840 is works to me

Same for me

Please check 2.4.5.870-pre. Cheers.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

abenedykt picture abenedykt  路  3Comments

jjchiw picture jjchiw  路  5Comments

thisisthekap picture thisisthekap  路  5Comments

angelru picture angelru  路  4Comments

dkornev picture dkornev  路  4Comments