Skip to content
This repository was archived by the owner on Jan 13, 2025. It is now read-only.
This repository was archived by the owner on Jan 13, 2025. It is now read-only.

ModelRenderable setSource exception #833

@patrickvandewal

Description

@patrickvandewal

Hello!

I'm currently trying to make a implementation with the SceneForm binding in Xamarin.Android and I am running into some trouble with getting the sample project up and running. After successfully being able to compile the binding and the sample project, the app crashes upon startup with the following exception:

Java.Lang.NoSuchMethodError: no non-static method "Lcom/google/ar/sceneform/rendering/ModelRenderable$Builder;.setSource(Landroid/content/Context;Landroid/net/Uri;)Ljava/lang/Object;"

And the full stacktrace:

[MonoDroid] UNHANDLED EXCEPTION:
[MonoDroid] Java.Lang.NoSuchMethodError: no non-static method "Lcom/google/ar/sceneform/rendering/ModelRenderable$Builder;.setSource(Landroid/content/Context;Landroid/net/Uri;)Ljava/lang/Object;"
[MonoDroid]   at Java.Interop.JniEnvironment+InstanceMethods.GetMethodID (Java.Interop.JniObjectReference type, System.String name, System.String signature) [0x0005b] in <26521a5118b44c858c385715922b9d5d>:0 
[MonoDroid]   at Com.Kingscode.Template.Droid.MainActivity.OnCreate (Android.OS.Bundle savedInstanceState) [0x0003c] in /Users/patrickva04-21 14:03:27.102 I/MonoDroid(25865):   at Java.Interop.JniType.GetInstanceMethod (System.String name, System.String signature) [0x0000c] in <26521a5118b44c858c385715922b9d5d>:0 
[MonoDroid]   at Java.Interop.JniPeerMembers+JniInstanceMethods.GetMethodInfo (System.String encodedMember) [0x00031] in <26521a5118b44c858c385715922b9d5d>:0 
[MonoDroid]   at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeAbstractObjectMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x00006] in <26521a5118b44c858c385715922b9d5d>:0 
[MonoDroid]   at Google.AR.Sceneform.Rendering.ModelRenderable+Builder.SetSource (Android.Content.Context context, Android.Net.Uri sourceUri) [0x00053] in <e7d976a890b247818ef976959b28d9a3>:0 
[MonoDroid] 	at crc643c88d44abbfe9d67.Maindewal/Projects/citadel-template/Android/MainActivity.cs:50 
[MonoDroid]   at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_savedInstanceState) [0x00011] in /Users/runner/runners/2.165.0/work/1/s/xamarin-android/src/Mono.Android/obj/Release/android-29/mcw/Android.App.Activity.cs:2652 
[MonoDroid]   at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.7(intptr,intptr,intptr)
[MonoDroid]   --- End of managed Java.Lang.NoSuchMethodError stack trace ---
[MonoDroid] java.lang.NoSuchMethodError: no non-static method "Lcom/google/ar/sceneform/rendering/ModelRenderable$Builder;.setSource(Landroid/content/Context;Landroid/net/Uri;)Ljava/lang/Object;"
[MonoDroid] 	at crc643c88d44abbfe9d67.MainActivity.n_onCreate(Native Method)
[MonoDroid] 	at crc643c88d44abbfe9d67.MainActivity.onCreate(MainActivity.java:39)
[MonoDroid] 	at android.app.Activity.performCreate(Activity.java:7817)
[MonoDroid] 	at android.app.Activity.performCreate(Activity.java:7806)
[MonoDroid] 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1328)
[MonoDroid] 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3452)
[MonoDroid] 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3620)
[MonoDroid] 	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
[MonoDroid] 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
[MonoDroid] 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2183)
[MonoDroid] 	at android.os.Handler.dispatchMessage(Handler.java:107)
[MonoDroid] 	at android.os.Looper.loop(Looper.java:241)
[MonoDroid] 	at android.app.ActivityThread.main(ActivityThread.java:7617)
[MonoDroid] 	at java.lang.reflect.Method.invoke(Native Method)
[MonoDroid] 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
[MonoDroid] 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)

Specifically, it seems it goes wrong in the binding itself.

[Register("setSource", "(Landroid/content/Context;I)Ljava/lang/Object;", "")]
public unsafe global::Google.AR.Sceneform.Rendering.ModelRenderable.Builder SetSource(global::Android.Content.Context context, int resource)
{
	const string __id = "setSource.(Landroid/content/Context;I)Ljava/lang/Object;";
	try
	{
		JniArgumentValue* __args = stackalloc JniArgumentValue[2];
		__args[0] = new JniArgumentValue((context == null) ? IntPtr.Zero : ((global::Java.Lang.Object)context).Handle);
		__args[1] = new JniArgumentValue(resource);
	 var __rm = _members.InstanceMethods.InvokeAbstractObjectMethod(__id, this, __args); 
		return global::Java.Lang.Object.GetObject<global::Google.AR.Sceneform.Rendering.ModelRenderable.Builder>(__rm.Handle, JniHandleOwnership.TransferLocalRef);
	}
	finally
	{
	}
}

On this line:

	 var __rm = _members.InstanceMethods.InvokeAbstractObjectMethod(__id, this, __args); 

I've been trying to revert to a lower version of the package and the issue still persists. Also, I've been trying to run it on different versions of Android. I've been trying Nougat, Pie and 10. Without success!

Anyone has an idea of how to resolve this issue?

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions