GithubHelp home page GithubHelp logo

alibaba / gaiax Goto Github PK

View Code? Open in Web Editor NEW
1.1K 32.0 134.0 56.06 MB

动态模板引擎是一套轻量化、跨平台、高性能的纯原生移动端卡片渲染动态化解决方案

Home Page: https://youku-gaiax.github.io/

License: Apache License 2.0

CSS 1.73% Kotlin 17.55% Java 7.30% Shell 0.18% Ruby 0.07% Objective-C 10.36% C 35.53% Swift 0.28% CMake 0.06% C++ 2.55% Objective-C++ 0.68% Rust 15.74% JavaScript 2.93% HTML 1.28% TypeScript 2.59% SCSS 0.01% MDX 0.98% Batchfile 0.06% Makefile 0.14%
android ios cross-platform flexbox rust kotlin swift css

gaiax's Introduction

GaiaX-logo

动态模板引擎是阿里巴巴优酷技术团队研发的一套轻量级的纯原生动态化卡片跨端解决方案

README-en README-zh Docs-zh GitHub release GitHub Stars GitHub Forks user repos GitHub Contributors License

动态模板引擎

动态模板引擎是阿里巴巴优酷技术团队研发的一套轻量级的纯原生动态化卡片跨端解决方案。

除了客户端SDK外,还提供了模板可视化搭建工具Studio,以及Demo工程(包含模板示例,以及扫码预览),支持从模板创建、编辑、真机调试、预览等研发全链路技术。

动态模板引擎的目标是在保证原生体验与性能的同时,帮助客户端开发实现低代码。

目标

以下这些目标是我们项目前进的方向:

  • 高性能
  • 跨端技术
  • 可视化搭建
  • 纯Native渲染

支持平台

  • Android
  • iOS

核心概念

GaiaX-arch

使用到的技术

Rust/Android/Kotlin/iOS/OC/C++/JNI/CSS/FlexBox

使用方法

Android

依赖

增加jitpack源:

// 方式1:在setting.gradle中增加
pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        maven { url 'https://jitpack.io' }
        mavenCentral()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        maven { url 'https://jitpack.io' }
        mavenCentral()
    }
}

// 方式2:在根build.gradle中增加
allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

Android-Support version:

implementation 'com.github.alibaba.GaiaX:GaiaX-Adapter:$version-support'
implementation 'com.github.alibaba.GaiaX:GaiaX:$version-support'
implementation 'com.alibaba:fastjson:1.2.76'

AndroidX version:

implementation 'com.github.alibaba.GaiaX:GaiaX-Adapter:$version'
implementation 'com.github.alibaba.GaiaX:GaiaX:$version'
implementation 'com.alibaba:fastjson:1.2.76'

模板文件

// 用于存放模板资源的路径
/assets/${templateBiz}/${templateId}

调用方式

// SDK使用方式

// 初始化          - 初始化SDK
GXTemplateEngine.instance.init(activity)

// 构建模板参数     - 模板信息
// activity       - 上下文
// templateBiz    - 业务ID
// templateId     - 模板ID
val item = GXTemplateEngine.GXTemplateItem(activity, "templateBiz", "templateId")

// 构建模板参数     - 视口大小(模板绘制尺寸,类似于Android中画布的概念)
val size = GXTemplateEngine.GXMeasureSize(100F.dpToPx(), null)

// 构建模板参数     - 模板数据
val dataJson = AssetsUtils.parseAssets(activity, "template-data.json")
val data = GXTemplateEngine.GXTemplateData(dataJson)

// 创建模板视图     - 根据模板参数创建出一个原生View
val view = GXTemplateEngine.instance.createView(item, size)

// 视图绑定数据
GXTemplateEngine.instance.bindData(view, data)

// 将插入模板插入到容器中进行渲染
findViewById<ViewGroup>(R.id.template_container).addView(view, 0)

iOS

CocoaPods

在Podfile中添加依赖

// 依赖
pod 'GaiaXiOS'

模板文件

在App或者FrameWork中添加模板文件

// 用于存放模板资源的路径
xxx.bundle/templateId

调用方式

// SDK使用方式

// 引入头文件
#import <GaiaXiOS/GaiaXiOS.h>

//注册模板服务
[TheGXRegisterCenter registerTemplateServiceWithBizId:bizId templateBundle:@"xxx.bundle"];

// 构建模板参数     - 模板信息
// templateBiz    - 业务ID
// templateId     - 模板ID
GXTemplateItem *item = [[GXTemplateItem alloc] init];
item.templateId = templateId;
item.bizId = templateBiz;

// 构建模板参数     - 视口大小(模板绘制尺寸)
CGSize size = CGSizeMake(1080, NAN);

// 构建模板参数     - 模板数据
GXTemplateData *data = [[GXTemplateData alloc] init];
data.data = @{@"xxx": @"xxx"};

// 创建模板视图     - 根据模板参数创建出一个原生View
UIView *view = [TheGXTemplateEngine creatViewByTemplateItem:item measureSize:size];

// 视图绑定数据
[TheGXTemplateEngine bindData:data onView:view];

// 将插入模板插入到容器中进行渲染
[self.view addSubview:view];

2024鸿蒙迭代路线图

image

如何贡献代码

我们非常欢迎您为项目贡献代码。在您编写代码之前,请先创建一个issue或者pull request以便我们能够讨论方案的细节与方案的合理性。您可以针对以下领域贡献代码:

  • 包大小
  • 运行时性能
  • 跨端一致性
  • 单元测试用例
  • 文档或者使用案例
  • 等等

工具

问题反馈

  • 外部接入方须从Github上按照模板提示提出ISSUE,详细的描述问题,并@负责人的Github账户。

  • ISSUE的处理优先级,由高到低排序,1~7:

    • Level1 - 可被复现的BUG。
    • Level2 - 在GaiaX规划中的新增需求。
    • Level3 - GaiaStdio相关问题。
    • Level4 - 文档问题。
    • Level5 - 未在GaiaX规划中的新增需求。
    • Level6 - 不可被复现的BUG。
    • Level7 - 其他问题。
  • 各模块负责人Github账户:

许可证

Ali-GaiaX-Project is a template dynamic develop solutions developed by Alibaba and licensed under the Apache License (Version 2.0)
This product contains various third-party components under other open source licenses. 
See the NOTICE file for more information.

gaiax's People

Contributors

alibaba-oss avatar amjunliang avatar biezhihua avatar broven avatar cofbro avatar dqelong avatar fullalien avatar jingcheng1988 avatar johntsaii avatar msliu3 avatar mxpds6688 avatar oraoto avatar pj0579 avatar qiqiangqq avatar ronghui1219 avatar speedrn avatar yufamg avatar zylcold avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gaiax's Issues

关于模板异步请求数据

Hi!我们团队之前用的是 Tangram ,在其基础上扩展了卡片异步加载的功能。这个有其对应的业务场景,比如某个卡片是定位相关的,需要 App 获取定位后,根据经纬度请求额外信息,再回显到卡片上。

参考之前的做法,我在 GXDataManager#gx_bindData:onNode: 做了简单的扩展:

+ (void)gx_bindData:(NSDictionary *)data onNode:(GXNode *)node {
    ...
    //绑定数据,重新计算布局
    if (node.isRootNode) {
        ...
        // for async load
        [self startAsyncLoadIfNeedForNode:node withOriginalData:data];
    }
}

+ (void)startAsyncLoadIfNeedForNode:(GXNode *)node withOriginalData:(NSDictionary *)rawData {
    // 原数据中补充 load 字段,代表需要异步加载
    if ([rawData[@"load"] length] == 0) return;
    GXTemplateData *templateData = node.templateContext.templateData;
    // 再补充个代理方法
    if (!templateData.dataListener || ![templateData.dataListener respondsToSelector:@selector(gx_asyncLoadDataForKey:completion:)]) {
        return;
    }
    
    [templateData.dataListener gx_asyncLoadDataForKey:rawData[@"load"] completion:^(NSDictionary * _Nullable response) {
        if (response && response.count > 0) {
            NSMutableDictionary *convertedRes = [NSMutableDictionary dictionaryWithDictionary:response ?: @{}];
            // 移除load字段,避免多次触发
            [convertedRes removeObjectForKey:@"load"];
            // TODO:新旧数据合并

            templateData.data = [convertedRes copy];
            [self bindData:templateData onRootNode:node];
        }
    }];
}

GaiaXiOSDemoListViewController 中添加代理方法,并根据不同的 load 模拟异步请求:

- (void)gx_asyncLoadDataForKey:(NSString *)loadKey completion:(void (^)(NSDictionary * _Nullable))completion {
    // 异步加载的卡片1
    if ([loadKey isEqualToString:@"async_load1"]) {
        dispatch_async(dispatch_get_global_queue(0, 0), ^{
            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
                completion(@{
                    @"img": @"https://s.xiaopeng.com/xp-app/material/webp/ngp.webp",
                    @"title": @"async title",
                    @"desc": @"我是副标题",
                    @"load": @"asyn_load1"
                });
            });
        });
    } else if ([loadKey isEqualToString:@"async_load2"]) {
        // 异步加载的卡片2
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            completion([GaiaXHelper jsonWithFileName:@"load2"]);
        });
    }
    ...
}

目前自己在 Demo 中自测正常,可以达到异步加载目的。今天刚接触这个项目,其实主要有两个疑问:

  • 后续是否考虑为模板添加异步请求的功能?
  • 我在 Demo 中尝试了支持文本自适应的模板,在异步请求中模拟了超长文本的数据,最后 bindData 时模板可以正常自适应高度。不过由于 ListViewControllercell 的高度为手动设置,这时候我没有重新设置高度的话,发现 cell 还是保持原来的高度。所以想问下,是否有比较好的方式来处理这种动态高度的场景?

自定义view 无法绑定数据

在GAIAX studio 模版中编辑的自定义view 的type值 与 开源框架中处理判定是否改view是自定义view的逻辑不一致。
开源框架中 判断自定义view 的逻辑
image
模版中自定义view的type
image
由于判断逻辑与自定义view的 type 值不一致,造成自定义view 无法绑定数据

maven 仓库中找不到Gaiax

描述这个问题

请清晰和简明的描述这个问题。
gradle dependencies 中添加入下依赖
implementation 'com.alibaba.gaiax:GaiaX:0.0.1'
报错如下
image

extend 里 的 display 表达式应该是 flex 但是返回了 none

header.json

{
  "data": {
    "title": "完美世界",
    "centerText1": "xxx人在学",
    "centerText2": "共 xx 讲",
    "centerText3": "我要评价",
    "price1": "会员免费",
    "price2": "199.0",
    "cover": "https://t7.baidu.com/it/u=4162611394,4275913936&fm=193&f=GIF",
    "evalutionIcon": "local:testicon"
  }
}

index.css

#DetailHeader {
  width: 100%;
  height: 100%;
  background-color: #ffffff;
}
#Container {
  background-color: #e4e4e4;
  flex-direction: row;
  justify-content: flex-start;
  align-items: stretch;
  width: 100%;
  height: 166pt;
  padding-top: 22pt;
  padding-left: 14pt;
  padding-right: 14pt;
  padding-bottom: 6pt;
}
#Bubble {
  background-color: #ffffff;
  border-radius: 12pt;
  align-items: stretch;
  overflow: visible;
  flex-shrink: 1;
  flex-grow: 1;
}
#Cover {
  width: 108pt;
  background-color: #2cd430;
  border-radius: 10pt;
  margin-top: -20pt;
  margin-left: 14pt;
  margin-bottom: 14pt;
}
#TextContainer {
  flex-direction: column;
  flex-shrink: 1;
  flex-grow: 1;
  margin-right: 14pt;
  margin-left: 12pt;
  margin-top: 16pt;
  margin-bottom: 2pt;
}
#Title {
  text-overflow: ellipsis;
  color: #121212;
  font-size: 18px;
  fit-content: true;
  lines: 2;
  font-weight: 500;
}
#CenterTextContainer {
  justify-content: flex-start;
  align-items: center;
  margin-top: 8pt;
}
#CenterText1 {
  text-overflow: ellipsis;
  color: #999999;
  font-size: 12px;
  fit-content: true;
}
#Line1 {
  background-color: #ebebeb;
  width: 1pt;
  height: 8pt;
  margin-left: 6pt;
}
#CenterText2 {
  text-overflow: ellipsis;
  color: #999999;
  font-size: 12px;
  fit-content: true;
  margin-left: 6pt;
}
#Line2 {
  background-color: #ebebeb;
  height: 8pt;
  width: 1pt;
  margin-left: 6pt;
  opacity: 1;
}
#CenterText3 {
  text-overflow: ellipsis;
  color: #ff501a;
  font-size: 12px;
  fit-content: true;
  margin-left: 6pt;
}
#EvaluationIcon {
  width: 16pt;
  height: 16pt;
  border-radius: 7px;
  margin-left: 2pt;
}
#BottomTextContainer {
  margin-top: 8pt;
}
#BottomText1 {
  text-overflow: ellipsis;
  color: #ce994f;
  font-size: 13px;
  font-weight: 500;
  fit-content: true;
}
#BottomText2 {
  text-overflow: ellipsis;
  color: #999999;
  font-size: 13px;
  fit-content: true;
  padding-left: 6pt;
  width: 100px;
  height: 20px;
  text-decoration: line-through;
}

index.databinding

{
  "data": {
    "Title": { "value": "$data.title", "extend": { "fit-content": "true" } },
    "CenterText1": {
      "extend": { "fit-content": "true" },
      "value": "$data.centerText1"
    },
    "CenterText2": {
      "extend": { "fit-content": "true" },
      "value": "$data.centerText2"
    },
    "Line2": { "extend": { "display": "$data.centerText3 ? 'flex' : 'none'" } },
    "CenterText3": {
      "extend": {
        "fit-content": "true",
        "display": "$data.centerText3 ? 'flex' : 'none'"
      },
      "value": "$data.centerText3"
    },
    "EvaluationIcon": {
      "value": "$data.evalutionIcon",
      "extend": { "display": "$data.centerText3 ? 'flex' : 'none'" }
    },
    "BottomText1": {
      "extend": { "fit-content": "true" },
      "value": "$data.price1"
    },
    "BottomText2": {
      "extend": { "fit-content": "true" },
      "value": "$data.price2"
    }
  }
}

index.json

{
  "id": "DetailHeader",
  "type": "gaia-template",
  "package": {
    "id": "DetailHeader",
    "version": "0.0.1",
    "modify-timestamp": "Wed Jul 20 2022 19:35:56 GMT+0800 (**标准时间)",
    "dependencies": {}
  },
  "layers": [
    {
      "id": "Container",
      "type": "view",
      "layers": [
        {
          "id": "Bubble",
          "type": "view",
          "layers": [
            { "id": "Cover", "type": "custom" },
            {
              "id": "TextContainer",
              "type": "view",
              "layers": [
                { "id": "Title", "type": "text" },
                {
                  "id": "CenterTextContainer",
                  "type": "view",
                  "layers": [
                    { "id": "CenterText1", "type": "text" },
                    { "id": "Line1", "type": "view" },
                    { "id": "CenterText2", "type": "text" },
                    { "id": "Line2", "type": "view" },
                    { "id": "CenterText3", "type": "text" },
                    { "id": "EvaluationIcon", "type": "image" }
                  ]
                },
                {
                  "id": "BottomTextContainer",
                  "type": "view",
                  "layers": [
                    { "id": "BottomText1", "type": "text" },
                    { "id": "BottomText2", "type": "richtext" }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

header.json 中的 centerText3 存在的情况,"Line2": { "extend": { "display": "$data.centerText3 ? 'flex' : 'none'" } }, 得到了 none

问题: 双端Scroll坑位的缓存逻辑导致高度不正确(未缓存,导致性能下降)

描述这个问题

在有些情况下,业务会根据一些数据数据动态修改高度,在首次的时候没有这些数据,从而计算出一个高度并缓存。
当第二次再刷新数据时带有这些数据,就不会再去计算新的高度了,导致问题发生。

目前看,只有第一次的高度生效了。 后面通过js重新设置的高度,撑不起来。

复现步骤

预期正确的结果

期望GXItemContainer高度正确

截图

image

客户端 (请填写如下信息) :

崩溃日志

附加信息

【Android】GXMeasureViewPool 看起来有内存泄漏风险

描述这个问题

安卓用来辅助计算文字高度的这个GXMeasureViewPool,借助的是第一次创建gaia视图所使用的context。 并且
image
目前表现为,第一次创建gaia视图的那个页面的context,被这个viewpool给保存了下来,并且一直不释放。

另外一个问题,在于,这个viewpool里面保存的textView。它的context如果走完了生命周期,就不会再响应一些页面级别的回调(如字体大小的缩放)
因此,假如要适配文字的SP逻辑时,这个地方就是个隐患。

image

ios pod crash, 有计划修复吗?

  1. 新建工程 ,
  2. pod 'GaiaXiOS'
  3. 更新pod
  4. 打开项目真机运行 崩溃报以下错误
dyld: Library not loaded: @rpath/XCTest.framework/XCTest
  Referenced from: /private/var/containers/Bundle/Application/7D0527AC-DAF8-4655-BE83-0F45977564A3/TestGaiaX.app/TestGaiaX
  Reason: image not found
dyld: launch, loading dependent libraries
DYLD_LIBRARY_PATH=/usr/lib/system/introspection
DYLD_INSERT_LIBRARIES=/Developer/usr/lib/libBacktraceRecording.dylib:/Developer/usr/lib/libMainThreadChecker.dylib:/Developer/Library/PrivateFrameworks/DTDDISupport.framework/libViewDebuggerSupport.dylib

查了下, 是因为
https://github.com/CocoaPods/Specs/blob/019a3d1b3894515bd6057e56b706309338e95272/Specs/8/e/a/GaiaXiOS/0.1.0/GaiaXiOS.podspec.json 这个配置, "frameworks": "XCTest"

XCTest不能链接到主target

自适应的文本,如果设置了display 为false,会异常

描述这个问题

对于自适应高度的文本,如果它或者它的父布局被设置了隐藏。 此时它被计算的宽度是0。
同时给该文本视图设置文本。自适应Util方法会继续向下执行
而自适应高度计算的方法里,判断宽度为0后,不会判断当前视图是否可见,会直接抛出异常
image

@biezhihua

请清晰和简明的描述这个问题。

复现步骤

可通过分步复现该问题:

  1. 到什么页面 '...'
  2. 点击 '....'
  3. 滑动到 '....'
  4. 产生错误

预期正确的结果

请清晰和简明的描述你预期正确的结果。

截图

如果可以的话,添加截图来帮助解释您的问题。

客户端 (请填写如下信息) :

  • 设备: [e.g. iPhone6]
  • 系统: [e.g. iOS8.1]
  • GaiaX SDK版本 [e.g. 0.1.0]
  • Gaia Studio版本 [e.g. 0.1.0]
  • GaiaX 模板文件和模板数据

崩溃日志
在这里添加崩溃日志

附加信息
在这里添加有关该问题的任何其他信息。

android 本地图片资源 模版local:xxxx 不生效问题

描述这个问题
在模版中 引用android本地图片 ,运行程序后 图片不显示

问题定位
在模版渲染过程成中 gaiaX 会调用
image

image

image

这时候 本地的图片 并没有在 与模版绑定 的json 数据中,因为是本地图片,只是在模版中配置了,所以

框架中中更新节点的json数据就一直不包括 本地的资源
image

image

image

image

我虽然在绑定模版binddata时将本地路径拼进去但是这样动态性会有折扣,希望技术同学予以修复

客户端 (请填写如下信息) :

  • 设备: [e.g. iPhone6]
  • 系统: [e.g. iOS8.1]
  • GaiaX SDK版本 [e.g. 0.1.0]
  • Gaia Studio版本 [e.g. 0.1.0]
  • GaiaX 模板文件和模板数据

崩溃日志
在这里添加崩溃日志

附加信息
在这里添加有关该问题的任何其他信息。

Android如何局部刷新?

描述这个问题

Android Demo项目-点击事件测试,点击关注按钮,触发data.isFollowed变化,导致下方列表选中位置回到初始点。
测试观察iOS是可以局部刷新,修改关注按钮状态且不影响下方列表展示效果

预期正确的结果

只会影响到关注按钮的显示效果,其他部分不会发生变化

安卓列表容器存在滑动性能问题

描述这个问题

在RecyclerView中使用gaiaX容器组件会存在滑动卡顿现象, 猜测原因是重绘制时模版重新加载导致的卡顿

复现步骤

可通过分步复现该问题:

  1. 到什么页面 '...'
  2. 点击 '....'
  3. 滑动到 '....'
  4. 产生错误

预期正确的结果

请清晰和简明的描述你预期正确的结果。

截图

如果可以的话,添加截图来帮助解释您的问题。

客户端 (请填写如下信息) :

  • 设备: [e.g. iPhone6]
  • 系统: [e.g. iOS8.1]
  • GaiaX SDK版本 [e.g. 0.1.0]
  • Gaia Studio版本 [e.g. 0.1.0]
  • GaiaX 模板文件和模板数据

崩溃日志
在这里添加崩溃日志

附加信息
在这里添加有关该问题的任何其他信息。

依赖的compileSdkVersion版本问题

**描述这个问题 **

最新版本 com.github.alibaba:GaiaX:0.1.4 要求依赖的compileSdkVersion有些高要31,我们的环境最高是28能否降级发个版本呢,ps:应该不少的app都停留在相对较低的版本:)

特性:阴影的扩展

目前问题:

目前双端对阴影的支持度有所不同,但是共同点都是要给阴影留出预留空间,这在一些场景下是适用的,但是在某些业务场景下无法直接使用,会导致额外的使用成本。

Android技术方案:

 private fun disableClipOnParents(v: View) {
        if (v.parent == null) {
            return
        }
        if (v is ViewGroup) {
            v.clipChildren = false
            v.clipToPadding = false
        }
        if (v.parent is View) {
            disableClipOnParents(v.parent as View)
        }
    }

iOS技术方案待调研:

function里的参数,只能是单一取值表达式或者值,不能是另一个计算表达式

描述这个问题

我扩展了一个方法(任意方法)。 然后发现,方法里的参数,只能传一个取值表达式, 或者传一个确定的 值(Int/String 。。。)。
当我往这个方法里放一个计算的表达式时,会报错
StringOfIntValue((($target.poll.options[0].voting_count) / ($target.poll.voting_count))) + '%'

image

请清晰和简明的描述这个问题。

复现步骤

可通过分步复现该问题:

  1. 到什么页面 '...'
  2. 点击 '....'
  3. 滑动到 '....'
  4. 产生错误

预期正确的结果

请清晰和简明的描述你预期正确的结果。

截图

如果可以的话,添加截图来帮助解释您的问题。

客户端 (请填写如下信息) :

  • 设备: [e.g. iPhone6]
  • 系统: [e.g. iOS8.1]
  • GaiaX SDK版本 [e.g. 0.1.0]
  • Gaia Studio版本 [e.g. 0.1.0]
  • GaiaX 模板文件和模板数据

崩溃日志
在这里添加崩溃日志

附加信息
在这里添加有关该问题的任何其他信息。

文本延迟计算fit-content时发生crash

描述这个问题

文本延迟计算fit-content时发生crash

复现步骤

预期正确的结果

截图

客户端 (请填写如下信息) :

  • GaiaX SDK版本 0.2.4
  • Gaia Studio版本
  • GaiaX 模板文件和模板数据

zhihu_hotRank_ideaCard.zip

崩溃日志


2022-07-08 10:22:15.160 7515-7515/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
2022-07-08 10:22:15.160 7515-7515/? A/DEBUG: Cause: null pointer dereference
2022-07-08 10:22:15.161 7515-7515/? A/DEBUG:     x0  0000000000000000  x1  0000000000000000  x2  0000007812c00000  x3  0000000000000000
2022-07-08 10:22:15.161 7515-7515/? A/DEBUG:     x4  0000000000000000  x5  0000000014e478cc  x6  0000000014e478c0  x7  0000000000000010
2022-07-08 10:22:15.161 7515-7515/? A/DEBUG:     x8  0101010101010101  x9  aa3c8aacf8187d51  x10 0000000000430000  x11 00000079083d5000
2022-07-08 10:22:15.161 7515-7515/? A/DEBUG:     x12 000000789afbee08  x13 0000000000000000  x14 0000000000000002  x15 000000798da3a110
2022-07-08 10:22:15.161 7515-7515/? A/DEBUG:     x16 00000078f8198ee0  x17 000000798a13e2e0  x18 00000000000000a1  x19 0000007fe065c098
2022-07-08 10:22:15.161 7515-7515/? A/DEBUG:     x20 0000000000000000  x21 0000000000000101  x22 00000000000000f9  x23 0000000000000111
2022-07-08 10:22:15.161 7515-7515/? A/DEBUG:     x24 0000007812c0f348  x25 0000000000000000  x26 0000000000000000  x27 0000000000000043
2022-07-08 10:22:15.161 7515-7515/? A/DEBUG:     x28 0000007fe065c140  x29 0000007fe065c030
2022-07-08 10:22:15.161 7515-7515/? A/DEBUG:     sp  0000007fe065c010  lr  00000078f818f838  pc  000000798a13e2f0
2022-07-08 10:22:15.235 32699-1193/com.zhihu.android.alpha E/NetProfiler: Recording request error, request: Request{method=POST, url=https://datahub.zhihu.com/collector/zlab, tags={}}, response: Response{protocol=http/1.1, code=422, message=Unprocessable Entity, url=https://datahub.zhihu.com/collector/zlab}, exception: null
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG: backtrace:
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #00 pc 000000000006c2f0  /apex/com.android.runtime/lib64/bionic/libc.so (strlen+16) (BuildId: b91c775ccc9b0556e91bc575a2511cd0)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #01 pc 0000000000002834  /data/app/com.zhihu.android.alpha-DHGSU3313NUc0FM6_y0DHQ==/lib/arm64/libGXAnalyzeAndroid.so (_ZNSt6__ndk112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2IDnEEPKc+36) (BuildId: 2b0650114f739efd096ace77035d9d8f082ee034)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #02 pc 000000000000270c  /data/app/com.zhihu.android.alpha-DHGSU3313NUc0FM6_y0DHQ==/lib/arm64/libGXAnalyzeAndroid.so (jstring2str(_JNIEnv*, _jstring*)+288) (BuildId: 2b0650114f739efd096ace77035d9d8f082ee034)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #03 pc 0000000000002fa4  /data/app/com.zhihu.android.alpha-DHGSU3313NUc0FM6_y0DHQ==/lib/arm64/libGXAnalyzeAndroid.so (Java_com_alibaba_gaiax_analyze_GXAnalyze_00024Companion_createValueString+72) (BuildId: 2b0650114f739efd096ace77035d9d8f082ee034)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #04 pc 0000000000150350  /apex/com.android.runtime/lib64/libart.so (art_quick_generic_jni_trampoline+144) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #05 pc 00000000024e6a90  /memfd:/jit-cache (deleted) (com.zhihu.android.register.GXExtensionExpression$GXAnalyzeWrapper$Companion$1.computeValueExpression+1472)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #06 pc 0000000000147334  /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #07 pc 00000000001561b4  /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+252) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #08 pc 00000000004d8834  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #09 pc 00000000004d9b84  /apex/com.android.runtime/lib64/libart.so (art::InvokeVirtualOrInterfaceWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+424) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #10 pc 00000000003af4d0  /apex/com.android.runtime/lib64/libart.so (art::JNI::CallLongMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+656) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #11 pc 00000000000037ec  /data/app/com.zhihu.android.alpha-DHGSU3313NUc0FM6_y0DHQ==/lib/arm64/libGXAnalyzeAndroid.so (_JNIEnv::CallLongMethod(_jobject*, _jmethodID*, ...)+116) (BuildId: 2b0650114f739efd096ace77035d9d8f082ee034)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #12 pc 0000000000003308  /data/app/com.zhihu.android.alpha-DHGSU3313NUc0FM6_y0DHQ==/lib/arm64/libGXAnalyzeAndroid.so (GXJniAnalyze::getSourceValue(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, void*)+308) (BuildId: 2b0650114f739efd096ace77035d9d8f082ee034)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #13 pc 0000000000059da4  /data/app/com.zhihu.android.alpha-DHGSU3313NUc0FM6_y0DHQ==/lib/arm64/libGXAnalyzeCore.so (GXAnalyze::check(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::vector<GXATSNode, std::__ndk1::allocator<GXATSNode>>, void*, void*)+5200) (BuildId: 9323f07de8a57c4af16f5a09e7e516985bc99bf0)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #14 pc 0000000000058380  /data/app/com.zhihu.android.alpha-DHGSU3313NUc0FM6_y0DHQ==/lib/arm64/libGXAnalyzeCore.so (GXAnalyze::getValue(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, void*)+864) (BuildId: 9323f07de8a57c4af16f5a09e7e516985bc99bf0)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #15 pc 0000000000002bc0  /data/app/com.zhihu.android.alpha-DHGSU3313NUc0FM6_y0DHQ==/lib/arm64/libGXAnalyzeAndroid.so (Java_com_alibaba_gaiax_analyze_GXAnalyze_getResultNative+224) (BuildId: 2b0650114f739efd096ace77035d9d8f082ee034)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #16 pc 0000000000150350  /apex/com.android.runti
me/lib64/libart.so (art_quick_generic_jni_trampoline+144) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #17 pc 00000000024d4830  /memfd:/jit-cache (deleted) (com.alibaba.gaiax.analyze.GXAnalyze.getResult+560)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #18 pc 00000000021777cc  /memfd:/jit-cache (deleted) (com.zhihu.android.register.GXExtensionExpression$GXAnalyzeWrapper.value+108)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #19 pc 000000000222e558  /memfd:/jit-cache (deleted) (com.alibaba.gaiax.template.GXDataBinding.getData+120)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #20 pc 00000000020d55bc  /memfd:/jit-cache (deleted) (com.alibaba.gaiax.render.node.GXTemplateNode.getData+124)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #21 pc 0000000002482408  /memfd:/jit-cache (deleted) (com.alibaba.gaiax.render.node.text.GXFitContentUtils.getMeasureContent+88)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #22 pc 00000000024f322c  /memfd:/jit-cache (deleted) (com.alibaba.gaiax.render.node.text.GXFitContentUtils.fitContent+636)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #23 pc 000000000211a1b4  /memfd:/jit-cache (deleted) (com.alibaba.gaiax.render.node.GXStretchNode.updateLayoutByFitContent+116)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #24 pc 00000000024f3ff0  /memfd:/jit-cache (deleted) (com.alibaba.gaiax.render.node.GXStretchNode.updateTextLayoutByFitContent+320)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #25 pc 00000000024ee8e4  /memfd:/jit-cache (deleted) (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.updateNodeTreeLayoutByDirtyText+900)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #26 pc 0000000000147334  /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #27 pc 00000000001561b4  /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+252) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #28 pc 00000000002fd900  /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+384) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #29 pc 00000000002f8bd0  /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+912) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #30 pc 00000000005cd910  /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+400) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #31 pc 0000000000141914  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #32 pc 0000000000007eec  [anon:dalvik-classes12.dex extracted in memory from /data/app/com.zhihu.android.alpha-DHGSU3313NUc0FM6_y0DHQ==/base.apk!classes12.dex] (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.buildNodeLayout+100)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #33 pc 00000000005cb874  /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+1432) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #34 pc 0000000000141814  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #35 pc 000000000000721c  [anon:dalvik-classes12.dex extracted in memory from /data/app/com.zhihu.android.alpha-DHGSU3313NUc0FM6_y0DHQ==/base.apk!classes12.dex] (com.alibaba.gaiax.render.GXRenderImpl.bindViewDataOnlyNodeTree+28)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #36 pc 00000000005cb874  /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+1432) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #37 pc 0000000000141814  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #38 pc 0000000000009e80  [anon:dalvik-classes17.dex extracted in memory from /data/app/com.zhihu.android.alpha-DHGSU3313NUc0FM6_y0DHQ==/base.apk!classes17.dex] (com.alibaba.gaiax.GXTemplateEngine.internalBindData+40)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #39 pc 00000000005cdc10  /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #40 pc 0000000000141914  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #41 pc 0000000000009d2a  [anon:dalvik-classes17.dex extracted in memory from /data/app/com.zhihu.android.alpha-DHGSU3313NUc0FM6_y0DHQ==/base.apk!classes17.dex] (com.alibaba.gaiax.GXTemplateEngine.bindData+22)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #42 pc 00000000005cb874  /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+1432) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #43 pc 0000000000141814  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #44 pc 0000000000009cfa  [anon:dalvik-classes17.dex extracted in memory from /data/app/com.zhihu.android.alpha-DHGSU3313NUc0FM6_y0DHQ==/base.apk!classes17.dex] (com.alibaba.gaiax.GXTemplateEngine.bindData$default+14)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #45 pc 00000000005d1188  /apex/com.android.runtime/lib64/libart.so (MterpInvokeStaticRange+768) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #46 pc 0000000000141c94  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_static_range+20) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #47 pc 000000000001281a  [anon:dalvik-classes14.dex extracted in memory from /data/app/com.zhihu.android.alpha-DHGSU3313NUc0FM6_y0DHQ==/base.apk!classes14.dex] (com.zhihu.android.baseview.ZHTemplateView.bindData+142)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #48 pc 00000000002ce22c  /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.1772238600391939451+320) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #49 pc 00000000005bc0a4  /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1012) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #50 pc 0000000000150468  /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #51 pc 0000000002467100  /memfd:/jit-cache (deleted) (com.zhihu.android.app.feed.ui.holder.pin.FeedHotPinTrendTemplateHolder.onBindData+656)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #52 pc 0000000000147334  /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #53 pc 00000000001561b4  /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+252) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #54 pc 00000000002fd900  /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+384) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #55 pc 00000000002f8bd0  /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+912) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #56 pc 00000000005cb564  /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+648) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #57 pc 0000000000141814  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #58 pc 0000000000078030  [anon:dalvik-classes8.dex extracted in memory from /data/app/com.zhihu.android.alpha-DHGSU3313NUc0FM6_y0DHQ==/base.apk!classes8.dex] (com.zhihu.android.app.feed.ui.holder.pin.FeedHotPinTrendTemplateHolder.onBindData+4)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #59 pc 00000000002ce22c  /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.1772238600391939451+320) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #60 pc 00000000005bc0a4  /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1012) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #61 pc 0000000000150468  /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #62 pc 0000000002525374  /memfd:/jit-cache (deleted) (com.zhihu.android.sugaradapter.SugarHolder.onBindData+52)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #63 pc 0000000002434d10  /memfd:/jit-cache (deleted) (com.zhihu.android.sugaradapter.SugarAdapter.onBindViewHolderInternal+240)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #64 pc 000000000251b248  /memfd:/jit-cache (deleted) (com.zhihu.android.sugaradapter.SugarAdapter.onBindViewHolder+56)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #65 pc 0000000002506d74  /memfd:/jit-cache (deleted) (com.zhihu.android.sugaradapter.SugarAdapter.onBindViewHolder+100)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #66 pc 00000000024ba338  /memfd:/jit-cache (deleted) (androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder+280)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #67 pc 0000000002435eac  /memfd:/jit-cache (deleted) (androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline+300)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #68 pc 00000000022c31f8  /memfd:/jit-cache (deleted) (androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline+2984)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #69 pc 00000000024a71ec  /memfd:/jit-cache (deleted) (androidx.recyclerview.widget.GapWorker.prefetchPositionWithDeadline+156)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #70 pc 00000000024df134  /memfd:/jit-cache (deleted) (androidx.recyclerview.widget.GapWorker.flushTaskWithDeadline+100)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #71 pc 00000000021f2ee0  /memfd:/jit-cache (deleted) (androidx.recyclerview.widget.GapWorker.flushTasksWithDeadline+208)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #72 pc 0000000002151460  /memfd:/jit-cache (deleted) (androidx.recyclerview.widget.GapWorker.prefetch+64)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #73 pc 000000000206bdf4  /memfd:/jit-cache (deleted) (androidx.recyclerview.widget.GapWorker.run+452)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #74 pc 000000000224c6f4  /memfd:/jit-cache (deleted) (android.os.Handler.handleCallback+68)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #75 pc 00000000021f4fd0  /memfd:/jit-cache (deleted) (android.os.Handler.dispatchMessage+64)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #76 pc 000000000225b850  /memfd:/jit-cache (deleted) (android.os.Looper.loop+1264)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #77 pc 000000000014763c  /apex/com.android.runtime/lib64/libart.so (art_quick_osr_stub+60) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #78 pc 00000000003522d8  /apex/com.android.runtime/lib64/libart.so (art::jit::Jit::MaybeDoOnStackReplacement(art::Thread*, art::ArtMethod*, unsigned int, int, art::JValue*)+1660) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.391 7515-7515/? A/DEBUG:       #79 pc 00000000005d6448  /apex/com.android.runtime/lib64/libart.so (MterpMaybeDoOnStackReplacement+212) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #80 pc 0000000000146350  /apex/com.android.runtime/lib64/libart.so (MterpHelpers+240) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #81 pc 0000000000338374  /system/framework/framework.jar (android.os.Looper.loop+1096)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #82 pc 00000000005ce41c  /apex/com.android.runtime/lib64/libart.so (MterpInvokeStatic+1136) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #83 pc 0000000000141994  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_static+20) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #84 pc 00000000001ac28c  /system/framework/framework.jar (android.app.ActivityThread.main+1372)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #85 pc 00000000002ce22c  /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.1772238600391939451+320) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #86 pc 00000000005bc0a4  /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1012) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #87 pc 0000000000150468  /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #88 pc 00000000001475b8  /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #89 pc 00000000001561d4  /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+284) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #90 pc 00000000004d8834  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #91 pc 00000000004da25c  /apex/com.android.runtime/lib64/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1476) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #92 pc 0000000000464140  /apex/com.android.runtime/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+52) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #93 pc 00000000000f8c34  /system/framework/arm64/boot.oat (art_jni_trampoline+180) (BuildId: 768feb95dda67c14bbc292716a53edbcf032c348)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #94 pc 0000000000147334  /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #95 pc 00000000001561b4  /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+252) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #96 pc 00000000002fd900  /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+384) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #97 pc 00000000002f8bd0  /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+912) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #98 pc 00000000005cb564  /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+648) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #99 pc 0000000000141814  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #100 pc 0000000000400f9a  /system/framework/framework.jar (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #101 pc 00000000002ce22c  /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.1772238600391939451+320) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #102 pc 00000000005bc0a4  /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1012) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #103 pc 0000000000150468  /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #104 pc 0000000000b257fc  /system/framework/arm64/boot-framework.oat (com.android.internal.os.ZygoteInit.main+3660) (BuildId: b89901c9780567a8e2663ffdf5cbfc24f2dffc4a)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #105 pc 00000000001475b8  /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #106 pc 00000000001561d4  /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+284) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #107 pc 00000000004d8834  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #108 pc 00000000004d84a0  /apex/com.android.runtime/lib64/libart.so (art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+408) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #109 pc 00000000003d7cf8  /apex/com.android.runtime/lib64/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+660) (BuildId: 762960c75ada06c48e438df6df29b0a1)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #110 pc 00000000001015c4  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+116) (BuildId: e99b2e2e44982c12a4dc2e20fbdbab43)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #111 pc 0000000000104c48  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+1248) (BuildId: e99b2e2e44982c12a4dc2e20fbdbab43)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #112 pc 00000000000034e0  /system/bin/app_process64 (main+1168) (BuildId: e844be217eb39b34490d3798328d1f12)
2022-07-08 10:22:15.392 7515-7515/? A/DEBUG:       #113 pc 000000000006b108  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+108) (BuildId: b91c775ccc9b0556e91bc575a2511cd0)

附加信息

为了适配SP,本次需求临时解决方案,在bindData之后,给文本框重新设置了字体大小(使用SP)
image

渲染崩溃

描述这个问题
Android 设备 P30
崩溃必现。并且删除个别表达式无法解决问题。
并且有时候会在渲染结束后发生崩溃。

异常log
2022-08-30 15:40:11.355 18486-18486/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 2022-08-30 15:40:11.355 18486-18486/? A/DEBUG: Build fingerprint: 'HUAWEI/ELE-AL00/HWELE:10/HUAWEIELE-AL00/10.1.0.162C00:user/release-keys' 2022-08-30 15:40:11.355 18486-18486/? A/DEBUG: Revision: '0' 2022-08-30 15:40:11.355 18486-18486/? A/DEBUG: ABI: 'arm64' 2022-08-30 15:40:11.358 18486-18486/? A/DEBUG: SYSVMTYPE: Maple APPVMTYPE: Art 2022-08-30 15:40:11.358 18486-18486/? A/DEBUG: Timestamp: 2022-08-30 15:40:11+0800 2022-08-30 15:40:11.358 18486-18486/? A/DEBUG: pid: 18346, tid: 18352, name: Jit thread pool >>> com.alibaba.gaiax.demo <<< 2022-08-30 15:40:11.358 18486-18486/? A/DEBUG: uid: 10218 2022-08-30 15:40:11.358 18486-18486/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x2ac9 2022-08-30 15:40:11.358 18486-18486/? A/DEBUG: x0 0000007af355b860 x1 0000007b54426000 x2 0000007af3600000 x3 0000000000000002 2022-08-30 15:40:11.358 18486-18486/? A/DEBUG: x4 0000000000000110 x5 0000000000000000 x6 0000000000000000 x7 000000000c401a7c 2022-08-30 15:40:11.358 18486-18486/? A/DEBUG: x8 0000000000002ab9 x9 33e02fda25c1f6b9 x10 00000000000002fd x11 0000007af39a0000 2022-08-30 15:40:11.358 18486-18486/? A/DEBUG: x12 00000000000000fc x13 00000000630dbedb x14 0004878c739c9683 x15 0000037fb0dffdb5 2022-08-30 15:40:11.358 18486-18486/? A/DEBUG: x16 0000007be2c1fa30 x17 0000007be2c13f80 x18 0000007b51768000 x19 0000007b610c8280 2022-08-30 15:40:11.358 18486-18486/? A/DEBUG: x20 0000007b54426000 x21 0000007af355b860 x22 000047aa000047aa x23 0000007b55528dc8 2022-08-30 15:40:11.358 18486-18486/? A/DEBUG: x24 0000007b55528d40 x25 0000007b55528d40 x26 0000007be6994020 x27 0000007be6aea020 2022-08-30 15:40:11.358 18486-18486/? A/DEBUG: x28 0000007b610f3fc8 x29 0000007b55528ca0 2022-08-30 15:40:11.358 18486-18486/? A/DEBUG: sp 0000007b55528c80 lr 0000007b60f2d558 pc 0000007b60f2d52c 2022-08-30 15:40:11.359 18486-18486/? A/DEBUG: backtrace: 2022-08-30 15:40:11.359 18486-18486/? A/DEBUG: #00 pc 000000000053f52c /apex/com.android.runtime/lib64/libart.so (art::ThreadPoolWorker::Run()+104) (BuildId: 762960c75ada06c48e438df6df29b0a1) 2022-08-30 15:40:11.359 18486-18486/? A/DEBUG: #01 pc 000000000053f018 /apex/com.android.runtime/lib64/libart.so (art::ThreadPoolWorker::Callback(void*)+148) (BuildId: 762960c75ada06c48e438df6df29b0a1) 2022-08-30 15:40:11.359 18486-18486/? A/DEBUG: #02 pc 00000000000cf7c0 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36) (BuildId: b91c775ccc9b0556e91bc575a2511cd0) 2022-08-30 15:40:11.359 18486-18486/? A/DEBUG: #03 pc 00000000000721a8 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: b91c775ccc9b0556e91bc575a2511cd0)

mock文件
billboard_top.txt

模版文件
gx_feed_billboard_total_card.zip
gx_feed_billboard_total_card.zip

其中使用了一个扩展方法
image

异常发生在C++层。 看起来是到渲染时发生的异常
请清晰和简明的描述这个问题。

复现步骤

可通过分步复现该问题:

  1. 到什么页面 '...'
  2. 点击 '....'
  3. 滑动到 '....'
  4. 产生错误

预期正确的结果

请清晰和简明的描述你预期正确的结果。

截图

如果可以的话,添加截图来帮助解释您的问题。

客户端 (请填写如下信息) :

  • 设备: [e.g. iPhone6]
  • 系统: [e.g. iOS8.1]
  • GaiaX SDK版本 [e.g. 0.1.0]
  • Gaia Studio版本 [e.g. 0.1.0]
  • GaiaX 模板文件和模板数据

崩溃日志
在这里添加崩溃日志

附加信息
在这里添加有关该问题的任何其他信息。

Stretch:布局错误,根节点设置左右边距和撑满剩余空间,效果不正确

描述这个问题

布局错误,根节点设置左右边距和撑满剩余空间,效果不正确

复现步骤

{
  "id": "Image1",
  "uid": "c1f5f3240f3fc4af423ca545ebacb3b2",
  "type": "gaia-template",
  "package": {
    "id": "Image1",
    "version": "0.0.1",
    "modify-timestamp": "Mon Jul 04 2022 17:46:11 GMT+0800 (China Standard Time)",
    "constraint-size": {
      "width": 375,
      "height": 100,
      "zoom": 1
    }
  },
  "layers": [
    {
      "id": "image",
      "uid": "d5df7b6b1ba07daf1eeb0f01c87dfb80",
      "type": "image"
    }
  ]
}
#Image1 {
  height: 100px;
  background-color: primaryBackground;
  justify-content: center;
  align-items: center;
  margin-left: 12px;
  margin-right: 12px;
  flex-grow: 1;
}

#image {
  width: 100px;
  height: 100px;
  border-radius: 7px;
  background-color: primaryFillColor;
} 
{
  "data": {
    "image": {
      "value": "${data.img}"
    }
  }
}

预期正确的结果

image

截图

如果可以的话,添加截图来帮助解释您的问题。

客户端 (请填写如下信息) :

崩溃日志

附加信息

数据的值是小数的时候会崩溃,整数就不会崩溃

描述这个问题

数据的值是小数的时候会崩溃,整数就不会崩溃

复现步骤

可通过分步复现该问题:

  1. gaia studio创建模版,添加子view为text类型,id为a
  2. mock数据为{"data":{"data1":1.1}}
  3. a的绑定数据为$data.data1
  4. 预览崩溃

预期正确的结果

预览显示1.1

截图

客户端 (请填写如下信息) :

  • 设备: [e.g. iPhone6]
  • 系统: [e.g. iOS8.1]
  • GaiaX SDK版本 [0.1.15]
  • GaiaX 模板文件和模板数据
{
  "id": "test",
  "uid": "5828b7d946fb205985ca85c16de2e1dd",
  "type": "gaia-template",
  "package": {
    "id": "test",
    "version": "0.0.1",
    "modify-timestamp": "Tue Jun 14 2022 15:13:46 GMT+0800 (**标准时间)"
  },
  "layers": [
    {
      "id": "a",
      "uid": "6127e23bcf9c932c757a2662619faf7b",
      "type": "text"
    }
  ]
}

#test {
  width: 100%;
  height: 100%;
  background-color: #ffffff;
}

#a {
  width: 100px;
  text-overflow: ellipsis;
  height: 20px;
  color: #000000;
  font-size: 15px;
} 

{
  "data": {
    "a": {
      "value": "$data.data1"
    }
  }
}

{
  "a": {
    "value": "请在这里输入文本"
  }
}

附加信息

特性:手动埋点支持

描述这个问题

当前gaiax模块不能很好地支持内部控件级别的曝光,比如我的某个gaiax模块里面有横排的三个item,我的曝光埋点需要做到item级别。当前曝光了一个item还是两个item。

复现步骤
必先

预期正确的结果

比如我的模块中只有三个item, 但是只有两个item在可视范围内。 我的应用从后台到前台的时候,我的曝光能够上报两个item的曝光。

截图

image

GaiaXAndroidDemo ScrollView 如何设置点击事件?

demo中设置了eventListener.
模板gx-content-uper-scroll-item的databinding如下
{ "data": { "cover-img": { "value": "$data.img" }, "title": { "value": "$data.title" } }, "event":{ "gx-content-uper-scroll-item":{ "type":"'tap'", "params": { "value": "'我是event'" } } } }
点击单个item无法回调onGestureEvent. 打断点可以看到gxTemplateContext.templateData?.eventListener为空。请问这个问题如何解决?

gaiax中添加editText,输入法弹出到时候不能自动把底部view一起顶上去

描述这个问题

原声android中,如果使用RelativeLayout或者ConstrainLayout,activity使用到inputMethodconfig使用resize或者pan的时候,
布局中 属性为app:layout_constraintBottom_toBottomOf="parent"的view,在输入法弹出的时候能够自动和输入法一起上移,但是gaiax中无法实现这个效果

截图

image
这是想要实现的效果,但是gaiax中貌似没发实现

表达式crash: 一个独立的表达式中,目前发现只支持一个方法

描述这个问题

((size($target.metrics_area.background) > 0) && size('0')) ? '700' : '1'

崩溃发生在check方法

另外,check方法这里,是否可以加个表达式的缓存,对一个相同的字符串。一次遍历解析出表达式结构后,其实就可以保存下来。再次碰到相同表达式的时候,可以直接使用保存过的 表达式语义 直接进行后面的计算逻辑。。

: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 6199 (baba.gaiax.demo), pid 6199 (baba.gaiax.demo) 09-08 14:26:22.261 6608 6608 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 09-08 14:26:22.261 6608 6608 F DEBUG : Build fingerprint: 'HUAWEI/ELE-AL00/HWELE:10/HUAWEIELE-AL00/10.1.0.162C00:user/release-keys' 09-08 14:26:22.261 6608 6608 F DEBUG : Revision: '0' 09-08 14:26:22.261 6608 6608 F DEBUG : ABI: 'arm64' 09-08 14:26:22.263 6608 6608 F DEBUG : SYSVMTYPE: Maple 09-08 14:26:22.263 6608 6608 F DEBUG : APPVMTYPE: Art 09-08 14:26:22.265 6608 6608 F DEBUG : Timestamp: 2022-09-08 14:26:22+0800 09-08 14:26:22.265 6608 6608 F DEBUG : pid: 6199, tid: 6199, name: baba.gaiax.demo >>> com.alibaba.gaiax.demo <<< 09-08 14:26:22.265 6608 6608 F DEBUG : uid: 10218 09-08 14:26:22.265 6608 6608 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 09-08 14:26:22.265 6608 6608 F DEBUG : Cause: null pointer dereference 09-08 14:26:22.265 6608 6608 F DEBUG : x0 0000007fce4a6020 x1 0000000000000013 x2 0000000000000200 x3 00000000131f4350 09-08 14:26:22.265 6608 6608 F DEBUG : x4 00000000000000a1 x5 0000007a13dee9ac x6 0000000033324247 x7 0000000032313332 09-08 14:26:22.265 6608 6608 F DEBUG : x8 0000000000000000 x9 8440c9757c82ad57 x10 0000000000430000 x11 0000000000000001 09-08 14:26:22.265 6608 6608 F DEBUG : x12 0000000000000000 x13 0000000000000000 x14 0000000000000012 x15 00000000000000ff 09-08 14:26:22.265 6608 6608 F DEBUG : x16 0000007a16e34c68 x17 0000007a16e00160 x18 0000007b06c92000 x19 0000007a80a10800 09-08 14:26:22.265 6608 6608 F DEBUG : x20 0000007a16e4d184 x21 0000007a80a10800 x22 0000007fce4a69a0 x23 0000007a140599f9 09-08 14:26:22.265 6608 6608 F DEBUG : x24 0000000000000010 x25 0000007b064e3020 x26 0000007a80a108b0 x27 0000000000000004 09-08 14:26:22.265 6608 6608 F DEBUG : x28 0000000000000004 x29 0000007fce4a6440 09-08 14:26:22.265 6608 6608 F DEBUG : sp 0000007fce4a5660 lr 0000007a16d805b4 pc 0000007a16d805c8 09-08 14:26:22.389 6608 6608 F DEBUG : 09-08 14:26:22.389 6608 6608 F DEBUG : backtrace: 09-08 14:26:22.389 6608 6608 F DEBUG : #00 pc 00000000000b65c8 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/lib/arm64/libGXAnalyzeCore.so (GXAnalyze::check(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::vector<GXATSNode, std::__ndk1::allocator<GXATSNode>>, void*, void*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>)+6792) (BuildId: 5109b76bd28f0562f92cfd42f9b77c0e52056f3f) 09-08 14:26:22.389 6608 6608 F DEBUG : #01 pc 00000000000b462c /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/lib/arm64/libGXAnalyzeCore.so (GXAnalyze::getValue(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, void*)+808) (BuildId: 5109b76bd28f0562f92cfd42f9b77c0e52056f3f) 09-08 14:26:22.389 6608 6608 F DEBUG : #02 pc 00000000000071e8 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/lib/arm64/libGXAnalyzeAndroid.so (Java_com_alibaba_gaiax_analyze_GXAnalyze_getResultNative+100) (BuildId: 40bf35b29d59019b33775bf8b89bb8b008a127ce) 09-08 14:26:22.389 6608 6608 F DEBUG : #03 pc 0000000000027040 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.odex (art_jni_trampoline+208) 09-08 14:26:22.389 6608 6608 F DEBUG : #04 pc 0000000000147334 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.389 6608 6608 F DEBUG : #05 pc 00000000001561b4 /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+252) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.389 6608 6608 F DEBUG : #06 pc 00000000002fd900 /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+384) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.389 6608 6608 F DEBUG : #07 pc 00000000002f8bd0 /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+912) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.389 6608 6608 F DEBUG : #08 pc 00000000005cd910 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+400) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.389 6608 6608 F DEBUG : #09 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.389 6608 6608 F DEBUG : #10 pc 0000000000a86f6e /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.analyze.GXAnalyze.getResult+116) 09-08 14:26:22.389 6608 6608 F DEBUG : #11 pc 00000000005cb874 /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+1432) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.389 6608 6608 F DEBUG : #12 pc 0000000000141814 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.389 6608 6608 F DEBUG : #13 pc 0000000000a7065e /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.adapter.GXExtensionExpression$GXAnalyzeWrapper.value+10) 09-08 14:26:22.389 6608 6608 F DEBUG : #14 pc 00000000005cd074 /apex/com.android.runtime/lib64/libart.so (MterpInvokeInterface+1752) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.389 6608 6608 F DEBUG : #15 pc 0000000000141a14 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_interface+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.389 6608 6608 F DEBUG : #16 pc 0000000000a8c138 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.template.GXDataBinding.getExtend+96) 09-08 14:26:22.389 6608 6608 F DEBUG : #17 pc 00000000005cb874 /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+1432) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.389 6608 6608 F DEBUG : #18 pc 0000000000141814 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.389 6608 6608 F DEBUG : #19 pc 0000000000a63526 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.node.GXTemplateNode.initFinal+26) 09-08 14:26:22.389 6608 6608 F DEBUG : #20 pc 00000000005cb874 /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+1432) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.389 6608 6608 F DEBUG : #21 pc 0000000000141814 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #22 pc 0000000000a612fe /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.updateNormalNodeLayout+30) 09-08 14:26:22.390 6608 6608 F DEBUG : #23 pc 00000000005cdc10 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #24 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #25 pc 0000000000a611b6 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.updateNodeTreeLayout+76) 09-08 14:26:22.390 6608 6608 F DEBUG : #26 pc 00000000005cdc10 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #27 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #28 pc 0000000000a61340 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.updateNormalNodeLayout+96) 09-08 14:26:22.390 6608 6608 F DEBUG : #29 pc 00000000005cdc10 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #30 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #31 pc 0000000000a611b6 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.updateNodeTreeLayout+76) 09-08 14:26:22.390 6608 6608 F DEBUG : #32 pc 00000000005cdc10 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #33 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #34 pc 0000000000a61340 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.updateNormalNodeLayout+96) 09-08 14:26:22.390 6608 6608 F DEBUG : #35 pc 00000000005cdc10 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #36 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #37 pc 0000000000a611b6 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.updateNodeTreeLayout+76) 09-08 14:26:22.390 6608 6608 F DEBUG : #38 pc 00000000005cdc10 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #39 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #40 pc 0000000000a61340 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.updateNormalNodeLayout+96) 09-08 14:26:22.390 6608 6608 F DEBUG : #41 pc 00000000005cdc10 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #42 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #43 pc 0000000000a611b6 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.updateNodeTreeLayout+76) 09-08 14:26:22.390 6608 6608 F DEBUG : #44 pc 00000000005cdc10 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #45 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #46 pc 0000000000a61340 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.updateNormalNodeLayout+96) 09-08 14:26:22.390 6608 6608 F DEBUG : #47 pc 00000000005cdc10 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #48 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #49 pc 0000000000a611b6 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.updateNodeTreeLayout+76) 09-08 14:26:22.390 6608 6608 F DEBUG : #50 pc 00000000005cdc10 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #51 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #52 pc 0000000000a61340 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.updateNormalNodeLayout+96) 09-08 14:26:22.390 6608 6608 F DEBUG : #53 pc 00000000005cdc10 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #54 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #55 pc 0000000000a611b6 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.updateNodeTreeLayout+76) 09-08 14:26:22.390 6608 6608 F DEBUG : #56 pc 00000000005cdc10 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #57 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #58 pc 0000000000a61340 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.updateNormalNodeLayout+96) 09-08 14:26:22.390 6608 6608 F DEBUG : #59 pc 00000000005cdc10 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #60 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #61 pc 0000000000a611b6 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.updateNodeTreeLayout+76) 09-08 14:26:22.390 6608 6608 F DEBUG : #62 pc 00000000005cdc10 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #63 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #64 pc 0000000000a611c6 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.updateNodeTreeLayout+4) 09-08 14:26:22.390 6608 6608 F DEBUG : #65 pc 00000000005cdc10 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #66 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #67 pc 0000000000a60750 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.node.GXNodeTreeUpdater.buildNodeLayout+94) 09-08 14:26:22.390 6608 6608 F DEBUG : #68 pc 00000000005cb874 /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+1432) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #69 pc 0000000000141814 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #70 pc 0000000000a5e8ba /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.render.GXRenderImpl.bindViewDataOnlyNodeTree+28) 09-08 14:26:22.390 6608 6608 F DEBUG : #71 pc 00000000005cb874 /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+1432) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #72 pc 0000000000141814 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #73 pc 0000000000ac8d1c /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.GXTemplateEngine.internalBindData+46) 09-08 14:26:22.390 6608 6608 F DEBUG : #74 pc 00000000005cdc10 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #75 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #76 pc 0000000000ac8b9c /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.GXTemplateEngine.bindData+16) 09-08 14:26:22.390 6608 6608 F DEBUG : #77 pc 00000000005cb874 /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+1432) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #78 pc 0000000000141814 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #79 pc 0000000000ac8b80 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.GXTemplateEngine.bindData$default+10) 09-08 14:26:22.390 6608 6608 F DEBUG : #80 pc 00000000005d1188 /apex/com.android.runtime/lib64/libart.so (MterpInvokeStaticRange+768) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #81 pc 0000000000141c94 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_static_range+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #82 pc 0000000000a87a9c /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.fastpreview.GaiaXFastPreviewActivity.forceCreate+82) 09-08 14:26:22.390 6608 6608 F DEBUG : #83 pc 00000000005cdc10 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #84 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #85 pc 0000000000a87bf2 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.fastpreview.GaiaXFastPreviewActivity.notifyUpdateUI+276) 09-08 14:26:22.390 6608 6608 F DEBUG : #86 pc 00000000005cd074 /apex/com.android.runtime/lib64/libart.so (MterpInvokeInterface+1752) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #87 pc 0000000000141a14 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_interface+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #88 pc 0000000000a87506 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.fastpreview.GaiaXFastPreview$socketListener$1.onFastPreviewDataChanged+202) 09-08 14:26:22.390 6608 6608 F DEBUG : #89 pc 00000000005cd074 /apex/com.android.runtime/lib64/libart.so (MterpInvokeInterface+1752) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #90 pc 0000000000141a14 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_interface+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #91 pc 0000000000a88906 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.alibaba.gaiax.fastpreview.GaiaXSocket.onMessage+280) 09-08 14:26:22.390 6608 6608 F DEBUG : #92 pc 00000000005cd074 /apex/com.android.runtime/lib64/libart.so (MterpInvokeInterface+1752) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #93 pc 0000000000141a14 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_interface+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #94 pc 0000000000ac4810 /data/app/com.alibaba.gaiax.demo-QbW8eVlhOJGmE6jcW1CtSQ==/oat/arm64/base.vdex (com.zhangke.websocket.dispatcher.MainThreadResponseDelivery$CallbackRunnable.run+500) 09-08 14:26:22.390 6608 6608 F DEBUG : #95 pc 00000000005cd074 /apex/com.android.runtime/lib64/libart.so (MterpInvokeInterface+1752) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #96 pc 0000000000141a14 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_interface+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #97 pc 000000000030d964 /system/framework/framework.jar (android.os.Handler.handleCallback+4) 09-08 14:26:22.390 6608 6608 F DEBUG : #98 pc 00000000005ce41c /apex/com.android.runtime/lib64/libart.so (MterpInvokeStatic+1136) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #99 pc 0000000000141994 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_static+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #100 pc 000000000030d7d0 /system/framework/framework.jar (android.os.Handler.dispatchMessage+8) 09-08 14:26:22.390 6608 6608 F DEBUG : #101 pc 00000000005cb874 /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+1432) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #102 pc 0000000000141814 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #103 pc 0000000000338948 /system/framework/framework.jar (android.os.Looper.loop+480) 09-08 14:26:22.390 6608 6608 F DEBUG : #104 pc 00000000005ce41c /apex/com.android.runtime/lib64/libart.so (MterpInvokeStatic+1136) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #105 pc 0000000000141994 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_static+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #106 pc 00000000001ac330 /system/framework/framework.jar (android.app.ActivityThread.main+1372) 09-08 14:26:22.390 6608 6608 F DEBUG : #107 pc 00000000002ce22c /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.1772238600391939451+320) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #108 pc 00000000005bc0a4 /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1012) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #109 pc 0000000000150468 /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #110 pc 00000000001475b8 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #111 pc 00000000001561d4 /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+284) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #112 pc 00000000004d8834 /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #113 pc 00000000004da25c /apex/com.android.runtime/lib64/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1476) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #114 pc 0000000000464140 /apex/com.android.runtime/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+52) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #115 pc 00000000000f8c34 /system/framework/arm64/boot.oat (art_jni_trampoline+180) (BuildId: 90bbd295362aca96e845f6a63c1295a4108a1d07) 09-08 14:26:22.390 6608 6608 F DEBUG : #116 pc 0000000000147334 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #117 pc 00000000001561b4 /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+252) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #118 pc 00000000002fd900 /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+384) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #119 pc 00000000002f8bd0 /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+912) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #120 pc 00000000005cb564 /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+648) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #121 pc 0000000000141814 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #122 pc 0000000000400d96 /system/framework/framework.jar (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22) 09-08 14:26:22.390 6608 6608 F DEBUG : #123 pc 00000000002ce22c /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.1772238600391939451+320) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #124 pc 00000000005bc0a4 /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1012) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #125 pc 0000000000150468 /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #126 pc 0000000000b259bc /system/framework/arm64/boot-framework.oat (com.android.internal.os.ZygoteInit.main+3660) (BuildId: 2e1ceefdbaf873ed14865f7cc2d86cc2203d42fe) 09-08 14:26:22.390 6608 6608 F DEBUG : #127 pc 00000000001475b8 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #128 pc 00000000001561d4 /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+284) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #129 pc 00000000004d8834 /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #130 pc 00000000004d84a0 /apex/com.android.runtime/lib64/libart.so (art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+408) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #131 pc 00000000003d7cf8 /apex/com.android.runtime/lib64/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+660) (BuildId: 762960c75ada06c48e438df6df29b0a1) 09-08 14:26:22.390 6608 6608 F DEBUG : #132 pc 00000000001015c4 /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+116) (BuildId: e99b2e2e44982c12a4dc2e20fbdbab43) 09-08 14:26:22.390 6608 6608 F DEBUG : #133 pc 0000000000104c48 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+1248) (BuildId: e99b2e2e44982c12a4dc2e20fbdbab43) 09-08 14:26:22.390 6608 6608 F DEBUG : #134 pc 00000000000034e0 /system/bin/app_process64 (main+1168) (BuildId: e844be217eb39b34490d3798328d1f12) 09-08 14:26:22.390 6608 6608 F DEBUG : #135 pc 000000000006b108 /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+108) (BuildId: b91c775ccc9b0556e91bc575a2511cd0)

同一行里出现俩表达式方法,会发生crash

请清晰和简明的描述这个问题。

复现步骤

可通过分步复现该问题:

  1. 到什么页面 '...'
  2. 点击 '....'
  3. 滑动到 '....'
  4. 产生错误

预期正确的结果

请清晰和简明的描述你预期正确的结果。

截图

如果可以的话,添加截图来帮助解释您的问题。

客户端 (请填写如下信息) :

  • 设备: [e.g. iPhone6]
  • 系统: [e.g. iOS8.1]
  • GaiaX SDK版本 [e.g. 0.1.0]
  • Gaia Studio版本 [e.g. 0.1.0]
  • GaiaX 模板文件和模板数据

崩溃日志
在这里添加崩溃日志

附加信息
在这里添加有关该问题的任何其他信息。

加载远程模板

加载远程模板后能得到一个GXTemplate对象,但是gaiax加载模板需要GXTemplateItem对象,GXTemplate这个怎么转换GXTemplateItem,还是gaiax可以直接加载GXTemplate呢

gaiaX 与支持插件化的 项目 classloader 不匹配问题

gaiax 接入有插件化项目时,插件中 动态化模版加载插件中资源找不到

宿主项目是插件化项目 ,在宿主项目中,我们对classloader 进行封装,插件用 PathClassloader 的子类进行加载。但是如果涉及在插件中 加载 类 或者 资源时,会出现资源加载异常的崩溃。

问题定位
image

image

image

image

但是 我们的classloader 并不是 bootClassLoader 所以出现类找不到问题。
对于这种情况,如果我们项目想使用gaiax 的话,能否提供一个更适合维护的方案?
我当前的解决方案 是
在绑定模版时 提供一个监听方法 将 是否 是插件 以及对应的classloader 传给 GaiaX框架 在加载类资源时 如果发现时插件 就更换classloader
但是这样对框架侵入太大,希望有更好的方案可以替代。

客户端 (请填写如下信息) :

  • 设备: [e.g. iPhone6]
  • 系统: [e.g. iOS8.1]
  • GaiaX SDK版本 [e.g. 0.1.0]
  • Gaia Studio版本 [e.g. 0.1.0]
  • GaiaX 模板文件和模板数据

崩溃日志
在这里添加崩溃日志

附加信息
在这里添加有关该问题的任何其他信息。

Stretch: flex_grow 和 flex_shrink 计算不生效的问题

在下面这种层级结构的情况下,双端计算结果不符合预期:

    ///
    /// Input hierarchy:
    ///    - root 375
    ///         - group0 40 40 flex_shrink:0
    ///         - group1 height:100% flex_grow:1 flex_shrink:1 flex_direction:column
    ///             - group1_group0 height:20 flex_shrink:1 flex_direction:row
    ///                 - group1_group0_group0 width width:400 height:20 flex_shrink:1 flex_direction:row
    ///         - group2 35 35 flex_shrink:0
    ///
    /// Output hierarchy:
    ///     - root 400
    ///         - group0 100
    ///         - group1 400
    ///             - group1_group0 width:200
    ///             - group1_group1 width:200

和手淘的DinamicX很像,是借鉴的DX吗?后续是否有融合的计划?

**描述这个问题 **

请清晰和简明的描述这个问题。

**复现步骤 - **

可通过分步复现该问题:

  1. 到什么页面 '...'
  2. 点击 '....'
  3. 滑动到 '....'
  4. 产生错误

预期正确的结果

请清晰和简明的描述你预期正确的结果。

截图

如果可以的话,添加截图来帮助解释您的问题。

客户端 (请填写如下信息) :

  • 设备: [e.g. iPhone6]
  • 系统: [e.g. iOS8.1]
  • GaiaX SDK版本 [e.g. 0.1.0]
  • GaiaX 模板文件和模板数据

附加信息
在这里添加有关该问题的任何其他信息。

0.2.4版本发生native崩溃

描述这个问题
请清晰和简明的描述这个问题。
在bindData时发生崩溃。

使用附件中的三个模板:template_group_normal.zip、template_comp_normal.zip、template_comp_scroll.zip。
三个文件解压后得到index.css、index.databinding、index.json。
其中template_group_normal.zip是在代码里直接访问的模板,其他两个是嵌套使用的。
在发生问题时,传入的json数据是:
{"data":{"version":"1.0","title":"Level=1的标题","img":"https://lawk-web.oss-cn-zhangjiakou.aliyuncs.com/dynamicskill_gaiax_templates/icon1.png","biz_id":"sample_templates","template_id":"template_group_normal","templates_base_url":"https://lawk-web.oss-cn-zhangjiakou.aliyuncs.com/dynamicskill_gaiax_templates/","templates":"https://lawk-web.oss-cn-zhangjiakou.aliyuncs.com/dynamicskill_sample/templates.zip"},"id":2,"level":1,"nodes":[{"data":{"version":"1.0","title":"Level=2的标题"},"id":3,"level":2,"nodes":[{"data":{"title":"坑位1.1标题","img":"https://lawk-web.oss-cn-zhangjiakou.aliyuncs.com/dynamicskill_gaiax_templates/icon1.png"},"id":4,"level":3,"type":0},{"data":{"title":"坑位1.2标题","img":"https://lawk-web.oss-cn-zhangjiakou.aliyuncs.com/dynamicskill_gaiax_templates/icon2.png"},"id":4,"level":3,"type":0}],"type":0}],"type":1003}

创建模板和绑定的代码如下:
if (mTemplateItem == null) {
// 这里创建的模板对应template_group_normal.zip
mTemplateItem = new GXTemplateEngine.GXTemplateItem(mActivity, bizId, templateId);
}
mTemplateData = new GXTemplateEngine.GXTemplateData(
GaiaXUtil.convertJson(mGroupDataNode.nodeJson));
mTemplateSize = new GXTemplateEngine.GXMeasureSize(
(float) getExpectedWidth(), (float) getExpectedHeight());

if (mTemplateView == null) {
mTemplateView = GXTemplateEngine.Companion.getInstance().createView(
mTemplateItem, mTemplateSize, null);
}

GXTemplateEngine.Companion.getInstance().bindData(
mTemplateView, mTemplateData, mTemplateSize);

mSkillPage.getSkillContainer().getSkillDisplayView().addView(mTemplateView);

崩溃时的log如下:
06-29 15:15:27.268 11004 11004 F libc : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 11004 (com.lwk.launcher), pid 11004 (com.lwk.launcher)
06-29 15:15:27.395 11338 11338 I crash_dump32: obtaining output fd from tombstoned, type: kDebuggerdTombstone
06-29 15:15:27.397 1048 1048 I /system/bin/tombstoned: received crash request for pid 11004
06-29 15:15:27.399 11338 11338 I crash_dump32: performing dump of process 11004 (target tid = 11004)
06-29 15:15:27.413 11338 11338 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-29 15:15:27.414 11338 11338 F DEBUG : Build fingerprint: 'HUAWEI/CLT-AL01/HWCLT:10/HUAWEICLT-AL01/10.0.0.175C00:user/release-keys'
06-29 15:15:27.414 11338 11338 F DEBUG : Revision: '0'
06-29 15:15:27.414 11338 11338 F DEBUG : ABI: 'arm'
06-29 15:15:27.416 11338 11338 F DEBUG : SYSVMTYPE: Maple
06-29 15:15:27.416 11338 11338 F DEBUG : APPVMTYPE: Art
06-29 15:15:27.417 11338 11338 F DEBUG : Timestamp: 2022-06-29 15:15:27+0800
06-29 15:15:27.417 11338 11338 F DEBUG : pid: 11004, tid: 11004, name: com.lwk.launcher >>> com.lwk.launcher <<<
06-29 15:15:27.417 11338 11338 F DEBUG : uid: 10237
06-29 15:15:27.417 11338 11338 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
06-29 15:15:27.417 11338 11338 F DEBUG : Cause: null pointer dereference
06-29 15:15:27.417 11338 11338 F DEBUG : r0 ffc9e35c r1 5480ec07 r2 00430000 r3 000000b0
06-29 15:15:27.417 11338 11338 F DEBUG : r4 ffc9e3f8 r5 ffc9e35c r6 00000000 r7 ffc9e430
06-29 15:15:27.417 11338 11338 F DEBUG : r8 b40d5470 r9 b40d5478 r10 b40d5478 r11 00000003
06-29 15:15:27.417 11338 11338 F DEBUG : ip b2562a50 sp ffc9e178 lr b25109e9 pc b25109e8
06-29 15:15:27.675 11338 11338 F DEBUG :
06-29 15:15:27.675 11338 11338 F DEBUG : backtrace:
06-29 15:15:27.675 11338 11338 F DEBUG : #00 pc 0004d9e8 /data/app/com.lwk.launcher-uAgYNHRTDq2Rsn5fyT3fow==/base.apk!libGXAnalyzeCore. so (offset 0x884000) (GXAnalyze::check(std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator>, std::__ndk1:: vector<GXATSNode, std::__ndk1::allocator>, void*, void*)+920) (BuildId: e10dab8b2069f3d20646c33f8b24eae3f5bc7e46)
06-29 15:15:27.675 11338 11338 F DEBUG : #1 pc 0004d435 /data/app/com.lwk.launcher-uAgYNHRTDq2Rsn5fyT3fow==/base.apk!libGXAnalyzeCore. so (offset 0x884000) (GXAnalyze::getValue(std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator>, void*)+316) (BuildId: e10dab8b2069f3d20646c33f8b24eae3f5bc7e46)
06-29 15:15:27.675 11338 11338 F DEBUG : #2 pc 0000280f /data/app/com.lwk.launcher-uAgYNHRTDq2Rsn5fyT3fow==/base.apk! libGXAnalyzeAndroid.so (offset 0x87c000) (Java_com_alibaba_gaiax_analyze_GXAnalyze_getResultNative+54) (BuildId: 323ace27760be64a7b7f18ec8ecc84e4ea4c750c) 06-29 15:15:27.675 11338 11338 F DEBUG : #3 pc 000e8519 /apex/com.android.runtime/lib/libart.so (art_quick_generic_jni_trampoline+40) (BuildId: abb8de64bc66468b445887ecf37739aa)

复现步骤

可通过分步复现该问题:

  1. 到什么页面 '...'
  2. 点击 '....'
  3. 滑动到 '....'
  4. 产生错误

预期正确的结果

请清晰和简明的描述你预期正确的结果。

截图

如果可以的话,添加截图来帮助解释您的问题。

客户端 (请填写如下信息) :

  • 设备: [e.g. iPhone6]
  • 系统: [e.g. iOS8.1]
  • GaiaX SDK版本 [e.g. 0.1.0]
  • Gaia Studio版本 [e.g. 0.1.0]
  • GaiaX 模板文件和模板数据

崩溃日志
在这里添加崩溃日志

附加信息
在这里添加有关该问题的任何其他信息。
template_comp_normal.zip
template_comp_scroll.zip
template_group_normal.zip

Feature:表达式语法问题

描述这个问题

目前使用中,发现表达式功能有如下缺陷

  1. != null 这种判空,只能对字符串使用,无法对对象与数组使用: 异常表现:会崩溃
  2. size(string) , size(array) 字符串取长度,或者array取长度,方法,都不兼容空对象:异常表现,崩溃
  3. 三目运算符 a ? b : c 逻辑,不满足短路原则,即满足a条件为true的情况下,c逻辑依然会执行,导致无法通过a逻辑的判断来规避c中的逻辑执行。因此无法进行安全的判空取值逻辑如下

($array[0] != null) ? size(array) : 0
无法使用'array[0] != null' 这样的安全判断, 来规避 size(array) 这样的风险逻辑的运行

image

针对问题1,看起来是刻意把对象与数组给排除出去的,这是种什么考量,是因为有未知风险么?

对问题2,看了下,应该是安卓单端的问题。
image
因为没有一个else分支给一个默认实现,导致c++那层发生空指针

image
ios给了个默认值0
@biezhihua

请清晰和简明的描述这个问题。

复现步骤

可通过分步复现该问题:

  1. 到什么页面 '...'
  2. 点击 '....'
  3. 滑动到 '....'
  4. 产生错误

预期正确的结果

请清晰和简明的描述你预期正确的结果。

截图

如果可以的话,添加截图来帮助解释您的问题。

客户端 (请填写如下信息) :

  • 设备: [e.g. iPhone6]
  • 系统: [e.g. iOS8.1]
  • GaiaX SDK版本 [e.g. 0.1.0]
  • Gaia Studio版本 [e.g. 0.1.0]
  • GaiaX 模板文件和模板数据

崩溃日志
在这里添加崩溃日志

附加信息
在这里添加有关该问题的任何其他信息。

特性:关于属性动画联动

您好,目前我有个需求是有两个控件 A、B且两个控件都设置了属性动画。现在我想给在A的动画执行完毕后再执行B的动画,目前咱们框架是否无法支持这种需求?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.