Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v 1.3.1 Crash - Xamarin - Targeting 13.2 IOS #77

Closed
mattcuda opened this issue Feb 24, 2020 · 8 comments · Fixed by #79
Closed

v 1.3.1 Crash - Xamarin - Targeting 13.2 IOS #77

mattcuda opened this issue Feb 24, 2020 · 8 comments · Fixed by #79

Comments

@mattcuda
Copy link

We are getting isolated crashes in some view controllers. Code wise, nothing has changed in at least two years on these controllers. At this point we are still trying to track down exactly how it is happening.

ProgressHUD.ShowImageWorker (UIKit.UIImage image, System.String status, System.TimeSpan duration)
ProgressHUD+<>c__DisplayClass26_0.b__0 ()
NSActionDispatcher.Apply ()
(wrapper managed-to-native) ObjCRuntime.Messaging.objc_msgSend(intptr,intptr,intptr,intptr,bool)
NSObject.InvokeOnMainThread (System.Action action)
ProgressHUD.ShowImage (UIKit.UIImage image, System.String status, System.Double timeoutMs)
BTProgressHUD.ShowSuccessWithStatus (System.String status, System.Double timeoutMs)
DeleteStoresGridDelegate+<>c__DisplayClass24_0.b__0 ()
NSActionDispatcher.Apply ()
(wrapper managed-to-native) UIKit.UIApplication.UIApplicationMain(int,string[],intptr,intptr)
UIApplication.Main (System.String[] args, System.IntPtr principal, System.IntPtr delegate)
UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName)
Application.Main (System.String[] args)

@Cheesebaron
Copy link
Collaborator

Which version of BTProgressHud?

@taylor19882002
Copy link

As title BTProgressHUD 1.3.1

@gafain
Copy link

gafain commented Mar 27, 2020

Same problem .
I cannot use the functions ShowSuccessWithStatus and ShowErrorWithStatus
the app crashes at line 440 of ProgressHUD.cs

System.NullReferenceException: Object reference not set to an instance of an object
at BigTed.ProgressHUD.ShowImageWorker (UIKit.UIImage image, System.String status, System.TimeSpan duration) [0x0005a] in D:\a\BTProgressHUD\BTProgressHUD\BTProgressHUD\ProgressHUD.cs:440
at BigTed.ProgressHUD+<>c__DisplayClass26_0.b__0 () [0x00000] in D:\a\BTProgressHUD\BTProgressHUD\BTProgressHUD\ProgressHUD.cs:179
at Foundation.NSActionDispatcher.Apply () [0x00000] in /Library/Frameworks/Xamarin.iOS.framework/Versions/13.14.1.39/src/Xamarin.iOS/Foundation/NSAction.cs:62
at at (wrapper managed-to-native) ObjCRuntime.Messaging.void_objc_msgSend_IntPtr_IntPtr_bool(intptr,intptr,intptr,intptr,bool)
at Foundation.NSObject.InvokeOnMainThread (System.Action action) [0x00007] in /Library/Frameworks/Xamarin.iOS.framework/Versions/13.14.1.39/src/Xamarin.iOS/Foundation/NSObject2.cs:605
at BigTed.ProgressHUD.ShowImage (UIKit.UIImage image, System.String status, System.Double timeoutMs) [0x00022] in D:\a\BTProgressHUD\BTProgressHUD\BTProgressHUD\ProgressHUD.cs:179
at BigTed.ProgressHUD.ShowErrorWithStatus (System.String status, System.Double timeoutMs) [0x00000] in D:\a\BTProgressHUD\BTProgressHUD\BTProgressHUD\ProgressHUD.cs:173
at BigTed.BTProgressHUD.ShowErrorWithStatus (System.String status, System.Double timeoutMs) [0x00000] in D:\a\BTProgressHUD\BTProgressHUD\BTProgressHUD\BTProgressHUD.cs:55
at KCAAPP2.Model.ReleTableCell.errorProgress () [0x00001] in /Users/Shared/Develop/apps/Kronotech/KCAAPP-IOS/KCAAPP2/Model/ReleTableCell.cs:149
at Foundation.NSActionDispatcher.Apply () [0x00000] in /Library/Frameworks/Xamarin.iOS.framework/Versions/13.14.1.39/src/Xamarin.iOS/Foundation/NSAction.cs:62
at at (wrapper managed-to-native) UIKit.UIApplication.UIApplicationMain(int,string[],intptr,intptr)
at UIKit.UIApplication.Main (System.String[] args, System.IntPtr principal, System.IntPtr delegate) [0x00005] in /Library/Frameworks/Xamarin.iOS.framework/Versions/13.14.1.39/src/Xamarin.iOS/UIKit/UIApplication.cs:86
at UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0000e] in /Library/Frameworks/Xamarin.iOS.framework/Versions/13.14.1.39/src/Xamarin.iOS/UIKit/UIApplication.cs:65
at KCAAPP2.Application.Main (System.String[] args) [0x00001] in

@tony98789
Copy link

tony98789 commented Mar 31, 2020

Hi Guys, think this is a problem with images not being included. Whenever i called ShowSuccessWithStatus i would get a null ref exception, this was due to the SuccessImage being null.

I downloaded the library and moved the images to my own resources folder and it fixed the problem for me.

The strange part was when i added the BTProgressHud folder to my project the images still had a build action of BundleResources but still caused the null ref exception. They did not load in correctly until i added them to my own Resources folder.

Think this is related

#76

@Cheesebaron
Copy link
Collaborator

@tony98789 looks like you are right. Tested #76 though and it doesn't seem to solve the issue. Will investigate this further.

@Redth do you have any idea, why BundleResources don't make it into the DLL?

@Redth
Copy link
Collaborator

Redth commented Mar 31, 2020

I think they may only get included if it’s a binding project. You might have to add a .targets file to the nuget package and include the assets directly in the nupkg and add the <ItemGroup><BundleResource Include=“$(MSBuildThisFileDirectory)\assets\image.png” /></ItemGroup> (or similar - that’s a from memory typed on phone code snippet).

@Cheesebaron
Copy link
Collaborator

Cheesebaron commented Apr 8, 2020

@Redth I've just been working a bit on this. I managed to get the images and .targets file added to the NuGet package and the images seem to get included in the built IPA file when referencing the produced NuGet.

However, it still doesn't seem to pick up the images when trying to load them from bundle. I see the images on the simulator file system.

I added a file called BTProgressHud.targets to the NuGet with following contents (My branch here):

<Project>
    <ItemGroup>
        <BundleResource Include="$(MSBuildThisFileDirectory)\BTProgressHud\error_7.png" />
        <BundleResource Include="$(MSBuildThisFileDirectory)\BTProgressHud\error_7@2x.png" />
        <BundleResource Include="$(MSBuildThisFileDirectory)\BTProgressHud\error.png" />
        <BundleResource Include="$(MSBuildThisFileDirectory)\BTProgressHud\error@2x.png" />
        <BundleResource Include="$(MSBuildThisFileDirectory)\BTProgressHud\success_7.png" />
        <BundleResource Include="$(MSBuildThisFileDirectory)\BTProgressHud\success_7@2x.png" />
        <BundleResource Include="$(MSBuildThisFileDirectory)\BTProgressHud\success.png" />
        <BundleResource Include="$(MSBuildThisFileDirectory)\BTProgressHud\success@2x.png" />
    </ItemGroup>
</Project>

I don't really see what else should be needed for this to work?

@Cheesebaron
Copy link
Collaborator

Annotation 2020-04-08 164134

BTProgressHUD.1.3.2-bugfix-missing-assets.1.zip

Here is a screenshot of the package contents exploring with NuGet Package Explorer. I've also attached a NuGet package (just rename to .nupkg)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants