V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
equationl
V2EX  ›  Android

发现 MIUI13 对于 Compose 的 Navigation 支持有个致命问题

  •  
  •   equationl · 95 天前 · 2545 次点击
    这是一个创建于 95 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原本以为是我的程序有问题,谷歌了一下,发现了这条 IssueTracker:

    https://issuetracker.google.com/issues/227926002

    看来并不是个例,而且看这个意思,谷歌认为不是 Navigation 的问题而是 MIUI 的问题?

    然后我屁颠屁颠的跑去小米的开发者平台,找到了 MIUI 的反馈邮箱,发邮件过去反馈,结果被拒收了...

    这给我整不会了,还好在邮箱下面还有一个社区反馈的渠道,点进去却被重定向到了小米的圈子,一看这个圈子内容就不像是适合反馈这个问题的地方,但是我还是试着发了条帖子,果然石沉大海了...

    帖子如下: https://s.xiaomi.cn/c/6uwjiEH2?channel=Share

    所以像这种问题要去哪儿反馈?

    25 条回复    2022-06-07 14:50:28 +08:00
    windyboy
        1
    windyboy  
       95 天前
    说明像你一样的小米用户,已经忽略不计了
    clf
        2
    clf  
       95 天前
    @windyboy 其实是主流 App 都没用 Jetpack Compose ?(个人开发者的 App 倒是有不少用了的)
    clf
        3
    clf  
       95 天前
    BUG 反馈可以去 小米社区-开发组-反馈中心

    但我不确定会不会处理这个 issue ?(小米的反馈目前偏向平民化反馈?感觉开发者反馈的渠道比较少,给用户的那种截个图反馈的比较多)
    zpxshl
        4
    zpxshl  
       95 天前   ❤️ 1
    小米哪来的个人开发者反馈。 压根没人理你。 这家公司傲慢得很。
    大公司倒是有专门去渠道可以跟小米对接,反馈问题。
    equationl
        5
    equationl  
    OP
       95 天前 via Android
    @clf
    @zpxshl
    get√,明白了,虽然但是...这和是不是个人开发者没太大关系吧,难道企业开发者或者大厂就不用 compose 了...
    zpxshl
        6
    zpxshl  
       95 天前
    @equationl 那你就等大企业的人发现问题反馈了小米修了呗。 我之前就是这样等的。。。找的其他渠道根本就没人理,一个问题小米论坛一堆反馈了也没人理。
    equationl
        7
    equationl  
    OP
       95 天前 via Android
    @zpxshl 这也确实是,除了等也没办法了
    lisongeee
        8
    lisongeee  
       95 天前
    我在 IssueTracker 评论了一条解决方案,你可以试试
    mxalbert1996
        9
    mxalbert1996  
       95 天前 via Android
    我自己写的纯 Compose 应用,也用了 Navigation ,在 MIUI 12/13 下都没有问题。
    如果能稳定复现的话你调试一下应该不难找到问题在哪吧?
    mxalbert1996
        10
    mxalbert1996  
       95 天前 via Android
    @clf 国内主流而已,国外主流应用很多都开始用 Compose 了,包括 Twitter 这个体量的
    loshine1992
        11
    loshine1992  
       95 天前
    @lisongeee

    根据你的方法我测试了一下 ,在 MainActivity 层级添加一个 MainFragment

    然后把 Compose 放在 Fragment 里也可以解决这个问题。
    loshine1992
        12
    loshine1992  
       95 天前
    同理用协程延迟执行也可以解决,原理不明。

    lifecycleScope.launch {
    delay(100)
    setContent {
    }
    }
    equationl
        13
    equationl  
    OP
       95 天前 via Android
    @mxalbert1996 确实是稳定复现,我也试过找问题,但是找不到啊,日志输出没有发现任何问题。
    打断点发现只执行到了 NavHost 就停止了,正常来说应该是要执行指定的默认路由的 composable
    equationl
        14
    equationl  
    OP
       95 天前 via Android
    @lisongeee
    @loshine1992

    感谢两位老哥,我试试
    clf
        15
    clf  
       95 天前
    @mxalbert1996 了解(国内确实跟进会更慢)
    equationl
        16
    equationl  
    OP
       93 天前
    @mxalbert1996 老哥,能看一下你的安卓补丁版本和 MIUI 详细版本嘛?今天有小米工程师找我了,但是他说他怎么也重现不了,我怀疑人生了都。

    我用我朋友的手机试了一下,他也重现不了,但是他的版本好比我高。

    虽然都是 android12 ,但是他的安卓补丁是 3 月的,我的是 2 月的。
    mxalbert1996
        17
    mxalbert1996  
       93 天前 via Android
    我这里是 Android 11 ,MIUI 13.0.8 。
    https://play.google.com/store/apps/details?id=app.tivi
    你试试装下这个应用?这个应用也是用的 Compose+Navigation Component ,你看能复现么?
    equationl
        18
    equationl  
    OP
       93 天前
    @mxalbert1996
    ![78705e67e0ce0558aeb0da789e2ff7e.jpg]( https://s2.loli.net/2022/05/12/3bFSXKyfga7A4Un.jpg)

    怪了,13.0.8 我统计出来是能够复现的啊
    fromzero
        19
    fromzero  
       93 天前
    @mxalbert1996 twitter 也只是在不紧要的 三级页面用了 compose 。什么时候有大型 App 敢把首页重构成 Compose 代表这个东西成熟了
    mxalbert1996
        20
    mxalbert1996  
       93 天前 via Android
    @fromzero 我看着好像也没人说这个东西成熟了?只是 production-ready 而已。
    zii4914
        21
    zii4914  
       92 天前
    手机里面有 BUG 反馈,或许会在开发内部建立工单处理。
    小米官网有客服,可以找客服说下。

    我用了多年小米,你说的反馈不了我也震惊。我知道小米越来越拉胯,没想到直接拉成劈叉。我前两个月换了阵营了,感觉比小米好多了,小米的 UI 系统从头部负优化到尾部,也是 6 。
    equationl
        22
    equationl  
    OP
       92 天前
    @zii4914 不知道与我发了这个帖子有没有关系,后来有小米的工程师联系我了。

    其实我指的反馈不了是指没有合适的反馈渠道。

    手机里面的 BUG 反馈是针对一般用户而非开发者的,我找了一圈分类,没找到适合我这个问题的分类。

    而小米的开发者平台给的反馈渠道却又行不通,给了个邮箱已经弃用了,发不了邮件,又给了个反馈社区,却被重定向到了我上面说的这个针对一般用户的反馈社区。
    Meka
        23
    Meka  
       75 天前
    Redmi K40 MIUI13.0.3 稳定版,我用这个 navigation 还挺正常的
    lisongeee
        24
    lisongeee  
       66 天前
    ```kt
    val anim = remember { Animatable(UseHook.screenWidth/2, Int.VectorConverter) }
    LaunchedEffect(Unit) {
    log('此处确实输出了')
    anim.animateTo(
    0,
    TweenSpec(easing = FastOutSlowInEasing, durationMillis = 300)
    )
    }
    ```
    我启动 app 的时候执行这个,动画并不会执行,需要用手触摸一下才会执行
    按照上面那个老哥说的
    lifecycleScope.launch {
    delay(100)
    setContent {
    }
    }
    之后才会播放动画
    Navigation 也有一个默认的渐变动画,我怀疑是动画的问题
    equationl
        25
    equationl  
    OP
       66 天前
    @lisongeee 后来小米工程师联系我了,具体原因他们没有告诉我,但是说已经找到原因并且修复了,就是不知道什么时候能发布更新,也许已经后台静默更新了。

    反正我手机没有更新过系统,但是再也无法重现这个问题了。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2464 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 05:49 · PVG 13:49 · LAX 22:49 · JFK 01:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.