繁体   English   中英

当 AdaptiveCard.DeserializeFromString 在 android 上调用时,JNI FindClass 使用 NullPointerException 调用

[英]JNI FindClass called with NullPointerException when AdaptiveCard.DeserializeFromString called on android

我正在尝试构建一个延迟加载列表,该列表显示一组使用自适应卡 android build 2.7.0 的自适应卡。 我能够成功解析和呈现第一组数据。 但是当从后端获取第二组数据时,反序列化器会抛出以下错误。

JNI 在应用程序中检测到错误:JNI FindClass 调用时出现未决异常java.lang.NullPointerException:AdaptiveCards::BaseCardElementParser::Deserialize java_vm_ext.cc:577] 中的 null upcall 对象] at long io.adaptivecards.objectmodel.AdaptiveCardObjectModelJNI.AdaptiveCard_Deserialize0( .String, java.lang.String, long, io.adaptivecards.objectmodel.ParseContext) (AdaptiveCardObjectModelJNI.java:-2) java_vm_ext.cc:577] at io.adaptivecards.objectmodel.ParseResult io.adaptivecards.objectmodel.AdaptiveCard.DeserializeFromString (java.lang.String, java.lang.String, io.adaptivecards.objectmodel.ParseContext) (AdaptiveCard.java:211) java_vm_ext.cc:577] 在 io.adaptivecards.objectmodel.ParseResult com.mrg.cardfeed.PSCardLoader。反序列化(java.lang.String)

在以下调用中抛出错误

ParseResult parseResult = AdaptiveCard.DeserializeFromString(card, AdaptiveCardRenderer.VERSION, context);


// the simplified version of the method I use to render a card
 public void renderCardView(CardDO cardDO) {
        try {

            RawDO rawcard = cardDO.getRowData();
            String card = rawcard.raw_json;

            ParseResult parseResult = AdaptiveCard.DeserializeFromString(card, AdaptiveCardRenderer.VERSION, context);

            JsonObject jsonObject = JsonParser.parseString(additionalData).getAsJsonObject(); // other data
            RenderedAdaptiveCard renderedCard = AdaptiveCardRenderer.getInstance().render(activity, ((FragmentActivity) activity).getSupportFragmentManager(), parseResult.GetAdaptiveCard(), (ICardActionHandler) activity, PSHostConfig.psconfig.current);

            for (AdaptiveWarning warning : renderedCard.getWarnings()) {
                System.out.println(warning.getMessage());
            }

            View rendered = renderedCard.getView();
            rendered.canScrollVertically(1);
            
             String additionalData = parseResult.GetAdaptiveCard().GetAdditionalProperties().getString(); // for other data

// Present the view 
          

        } catch (Exception e) {
            System.out.println(e);
        }
    }

我正在使用异步任务来获取数据、解析和呈现卡片。 所以我认为这个问题与线程安全有关。 有没有人在使用自适应卡 android 时遇到过这个问题。 如果我犯了新手错误,请告诉我,因为我对自适应卡片很陌生。 任何帮助都受到高度赞赏。

请分享示例数据以确定您的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM