Skip to content

Throw exception in runtime When try to convert intptr to byte[] #23050

Closed as not planned
@jingliancui

Description

@jingliancui

Apple platform

iOS

Framework version

net9.0-*

Affected platform version

.Net 9 iOS

Description

Im trying to bind this :

var ptr = someintptr;
var versionStr = Marshal.PtrToStructure<byte[]>(ptr);

missing method exception will be thrown in runtime.

Steps to Reproduce

You can just try to using these codes in maui ios app to try.

Did you find any workaround?

No

Build logs

2025-06-15 23:59:10.070846+0800 SampleApp[12221:160812]
Unhandled Exception:
System.MissingMethodException: No parameterless constructor defined for type 'System.Byte[]'.
   at System.RuntimeType.CreateInstanceMono(Boolean nonPublic, Boolean wrapExceptions)
   at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean wrapExceptions)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic, Boolean wrapExceptions)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic)
   at System.Runtime.InteropServices.Marshal.PtrToStructure[Byte[]](IntPtr ptr)
   at GoogleMobileAdsBinding.Constants.get_GoogleMobileAdsVersionString() in /Users/ericcui/Desktop/GitHubWorkspace/iOSGoogleMobileAdsSDKBinding/12.6.0 2/GoogleMobileAdsBinding/Additions.cs:line 17
   at SampleApp.MainPage.ShowLibVersionButton_Clicked(Object sender, EventArgs e) in /Users/ericcui/Desktop/GitHubWorkspace/MAUIiOSGoogleMobileAdsSampleApp/src/SampleApp/MainPage.xaml.cs:line 39
   at Microsoft.Maui.Controls.Button.Microsoft.Maui.Controls.Internals.IButtonElement.PropagateUpClicked()
   at Microsoft.Maui.Controls.ButtonElement.ElementClicked(VisualElement visualElement, IButtonElement ButtonElementManager)
   at Microsoft.Maui.Controls.Button.SendClicked()
   at Microsoft.Maui.Controls.Button.Microsoft.Maui.IButton.Clicked()
   at Microsoft.Maui.Handlers.ButtonHandler.ButtonEventProxy.OnButtonTouchUpInside(Object sender, EventArgs e)
   at UIKit.UIControlEventProxy.Activated() in /Users/builder/azdo/_work/1/s/macios/src/UIKit/UIControl.cs:line 39
--- End of stack trace from previous location ---
   at ObjCRuntime.Runtime.ThrowException(IntPtr gchandle) in /Users/builder/azdo/_work/1/s/macios/src/ObjCRuntime/Runtime.cs:line 2831
   at UIKit.UIApplication.UIApplicationMain(Int32 argc, String[] argv, IntPtr principalClassName, IntPtr delegateClassName) in /Users/builder/azdo/_work/1/s/macios/src/UIKit/UIApplication.cs:line 75
   at UIKit.UIApplication.Main(String[] args, Type principalClass, Type delegateClass) in /Users/builder/azdo/_work/1/s/macios/src/UIKit/UIApplication.cs:line 107
   at SampleApp.Program.Main(String[] args) in /Users/ericcui/Desktop/GitHubWorkspace/MAUIiOSGoogleMobileAdsSampleApp/src/SampleApp/Platforms/iOS/Program.cs:line 13
2025-06-15 23:59:10.077152+0800 SampleApp[12221:160812] Unhandled managed exception: No parameterless constructor defined for type 'System.Byte[]'. (System.MissingMethodException)
   at System.RuntimeType.CreateInstanceMono(Boolean nonPublic, Boolean wrapExceptions)
   at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean wrapExceptions)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic, Boolean wrapExceptions)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic)
   at System.Runtime.InteropServices.Marshal.PtrToStructure[Byte[]](IntPtr ptr)
   at GoogleMobileAdsBinding.Constants.get_GoogleMobileAdsVersionString() in /Users/ericcui/Desktop/GitHubWorkspace/iOSGoogleMobileAdsSDKBinding/12.6.0 2/GoogleMobileAdsBinding/Additions.cs:line 17
   at SampleApp.MainPage.ShowLibVersionButton_Clicked(Object sender, EventArgs e) in /Users/ericcui/Desktop/GitHubWorkspace/MAUIiOSGoogleMobileAdsSampleApp/src/SampleApp/MainPage.xaml.cs:line 39
   at Microsoft.Maui.Controls.Button.Microsoft.Maui.Controls.Internals.IButtonElement.PropagateUpClicked()
   at Microsoft.Maui.Controls.ButtonElement.ElementClicked(VisualElement visualElement, IButtonElement ButtonElementManager)
   at Microsoft.Maui.Controls.Button.SendClicked()
   at Microsoft.Maui.Controls.Button.Microsoft.Maui.IButton.Clicked()
   at Microsoft.Maui.Handlers.ButtonHandler.ButtonEventProxy.OnButtonTouchUpInside(Object sender, EventArgs e)
   at UIKit.UIControlEventProxy.Activated() in /Users/builder/azdo/_work/1/s/macios/src/UIKit/UIControl.cs:line 39
--- End of stack trace from previous location ---
   at ObjCRuntime.Runtime.ThrowException(IntPtr gchandle) in /Users/builder/azdo/_work/1/s/macios/src/ObjCRuntime/Runtime.cs:line 2831
   at UIKit.UIApplication.UIApplicationMain(Int32 argc, String[] argv, IntPtr principalClassName, IntPtr delegateClassName) in /Users/builder/azdo/_work/1/s/macios/src/UIKit/UIApplication.cs:line 75
   at UIKit.UIApplication.Main(String[] args, Type principalClass, Type delegateClass) in /Users/builder/azdo/_work/1/s/macios/src/UIKit/UIApplication.cs:line 107
   at SampleApp.Program.Main(String[] args) in /Users/ericcui/Desktop/GitHubWorkspace/MAUIiOSGoogleMobileAdsSampleApp/src/SampleApp/Platforms/iOS/Program.cs:line 13
The program 'SampleApp.dll' has exited with code 0 (0x0).

Metadata

Metadata

Assignees

No one assigned

    Labels

    binding-projectsIssue or PR that affects binding projects

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions