【问题标题】:Objective-C initialization method returned nil while initializing UNNotificationAttachment class in LibgdxObjective-C 初始化方法在 Libgdx 中初始化 UNNotificationAttachment 类时返回 nil
【发布时间】:2020-12-14 18:53:05
【问题描述】:

我正在尝试将图像附加到 Libgdx 项目的 iOS 模块中的通知。但是在初始化 UNNotificationAttachment 时出现以下错误

2020-08-26 08:09:56.711 IOSLauncher[29001:1089461] -[NSURL init] called; this results in an NSURL instance with an empty URL string. Please use one of the documented NSURL initialization methods instead (initWithString:, initFileURLWithPath:, etc.). This message shown only once.
2020-08-26 08:10:03.864 IOSLauncher[29001:1089573] XPC connection interrupted
SLF4J: Failed to load class "org.slf4j.impl.StaticMDCBinder".
SLF4J: Defaulting to no-operation MDCAdapter implementation.
SLF4J: See http://www.slf4j.org/codes.html#no_static_mdc_binder for further details.
Exception in thread "main" java.lang.RuntimeException: Objective-C initialization method returned nil
    at org.robovm.objc.ObjCObject.initObject(ObjCObject.java:108)
    at org.robovm.objc.ObjCObject.<init>(ObjCObject.java:97)
    at org.robovm.apple.foundation.NSObject.<init>(NSObject.java:136)
    at org.robovm.apple.usernotifications.UNNotificationAttachment.<init>(UNNotificationAttachment.java:54)
    at org.robovm.apple.usernotifications.UNNotificationAttachment.<init>(UNNotificationAttachment.java:51)
    at ua.gram.munhauzen.NotificationDelegate.scheduleNotification(NotificationDelegate.java:109)
    at ua.gram.munhauzen.IOSLauncher.showNotificaiton(IOSLauncher.java:414)
    at ua.gram.munhauzen.IOSLauncher.willResignActive(IOSLauncher.java:644)
    at com.badlogic.gdx.backends.iosrobovm.IOSApplication$Delegate.$cb$applicationWillResignActive$(IOSApplication.java)
    at org.robovm.apple.uikit.UIApplication.main(Native Method)
    at org.robovm.apple.uikit.UIApplication.main(UIApplication.java:446)
    at ua.gram.munhauzen.IOSLauncher.main(IOSLauncher.java:288)

【问题讨论】:

    标签: ios libgdx unnotificationattachment


    【解决方案1】:

    正如错误行 1 明确指出的那样: “这会导致一个带有空 URL 字符串的 NSURL 实例。请改用其中一种记录在案的 NSURL 初始化方法(initWithString:、initFileURLWithPath: 等)” 您可能在初始化 NSURL 时遇到问题。

    以下是 UNNotificationAttachment 的工作示例:

        UNNotificationAttachment attachment = null;
    
        File file = new File(filePath);
    
        URL url = null;
        try {
            url = file.toURI().toURL();
        } catch (MalformedURLException e) {
            System.out.println("URL--------------------->" + url);
        }
        if (url != null) {
            NSURL nsURL = new NSURL(url);
            System.out.println("NSURL -------------" + nsURL);
            try {
                attachment = new UNNotificationAttachment("image", nsURL, null);
            } catch (NSErrorException e) {
                System.out.println("Attachment Error:----------------->" + e);
            }
            System.out.println("Attachment : " + attachment);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-17
      • 1970-01-01
      • 2023-04-01
      • 2020-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多