java 板


LINE

来谈另一个灵异现象,已经有点头绪 但板上我没找到资料 ------------------------------- 前不久敝公司要我 implement twitter 模组 由於在别的专案已经做过了 因此我算架轻就熟,搬 code 就好 可是 code 一搬过来就不会动了 逻辑上出了什麽问题?不会吧.. 至少,我新功能不会动,不要影响旧功能啊! 这个有错误讯息,还好 Unable to execute dex: method ID not in [0, 0xffff]: 65536 google 查下去有资料,而且还是中文的(感动~) https://ingramchen.io/blog/2014/09/prevention-of-android-dex-64k-method-size-limit.html http://tinyurl.com/hq9yc5t 简单说,程式写太大 不是逻辑问题,是触到 java 极限的问题 这个简称 64K Methods 的问题有文件,英文的 T^T https://developer.android.com/studio/build/multidex.html?hl=zh-tw 勉强翻译後我给些结论 1. android 给了官方解法 5.0 版以前,要改程式,还要改 build machine (这有点辛苦,但不是办不到) 2.但测试结果是:并没想像中的完整,还会有一堆 bug 这就是问题了 意思是我们改了架构,然後 QA 得面对更大的 loading 了 (RD自己初测 ok,也不代表所有程序都 ok) 3.还有一个 bug 是,程式太大後,载入程序会出问题 (说是只发生在安装程式後的第一次执行) 当载入超过五秒,就引起载入失败 解决方法是"不要用官方解法",自己控制载入 这有点像当年 exe 档过大後,开始发展 DLL DLL 可以不要在一开始载入,但在使用到这个指令前,一定要载入完毕 如果 DLL 很多,何时载入才好? 可以由 OS 控制,也可以由程式手动控制(透过 LoadLibrary, FreeLib) 所以一开始只载入最小模组,马上启动程式,就不会有问题 但因为程式的启动进入点很多,可能由 user 启动,也可能用 service, notice 等等来启动,所以最小模组必需把每一个区块都顾到 这结论出来後,程式是稳了,但架构要大改了 手动载入根本是 AP 在扮演 OS 的角色!? -------------------------- 以上,虽然和程式逻辑无关 但一种语言或执行平台有其极限 只要电脑学久一点都见识过 我也见识过 dos 时代 640K 极限 後来开始 EMS/XMS, DPMS, 还养活了一个 QEMM 这样的软体 直到後来真正能使用 32条位址线的作业系统出现 都不知过几年了... 因为那一定要保护模式,所以 dos 下的软体相容性大有问题 大家开始由 dos 被强迫搬至 win os 也死了一大票无法跟上潮流的老工程师 以前的血泪历历在目啊... 所以我很紧张,马上打报告通知所有 RD 增加新功能已经不是第一要务 可以的话,由业务层面解决掉;我们要更多时间来缓冲这个问题... 这些不算程式逻辑,但毕竟还是有错误讯息 接下来,同事帮忙把程式转移至 Android Studio 可以 build, 可以执行 但有时突然会闪退;这就完全没有错误讯息了 Orz -------------------------------- 不卖关子,这个我们解掉了 原来是 Android Studio 改用 Gardle 来 build 程式 里面有些参数要填,会填到我们引用哪一版 support lib 我们用 23.0.1 版,而这在 Android 4.3 会有问题 改成 23.1.0 就好了 https://code.google.com/p/android/issues/detail?id=185457 这里有讨论 能解掉这个问题是不小心喵到,也算有错误讯息 (但我们自己写的 log 系统没记录它) 讯息是 06-14 16:30:16.551 3378-3378/module_name A/libc: Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 3378 (module_name) 以上,也算很灵异吧,但很仔细都可以找到讯息而找出答案 本来想在板上找答案的,没找到 後来还好网路上有 希望板上也多点 multi-dex 的讨论.. --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.72.182.75
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1466613495.A.1DA.html ※ 编辑: HuangJC (42.72.182.75), 06/23/2016 00:43:29
1F:→ qrtt1: 标题要加强啊。不要再灵异来灵异去了....这真的是限制啊 06/23 01:21
2F:→ ssccg: 这哪边灵异了,就限制和bug啊 06/23 07:33
3F:→ ssccg: Support library偶尔就会有奇怪bug,不然怎麽会需要改版.. 06/23 07:36
4F:→ ssccg: 然後multidex的问题,可以看一下这篇 06/23 07:37
6F:推 NullLife: 没写android 不过学到新知识了 大推~~~ 06/23 10:33
7F:→ bitlife: 要分清楚abnormal(异常)和paranormal(灵异),原则上在萤幕 06/23 11:08
8F:→ bitlife: 没有贞子爬出来以前都算前者 06/23 11:08
9F:→ qrtt1: @NullLife 如果有写或接触到 code generator 应该也会遇到 06/23 11:11
10F:→ qrtt1: 在非 andoird 但有写 java web 的人。应该是以超巨大的 jsp 06/23 11:11
11F:→ qrtt1: 会撞到这个问题。 06/23 11:11
12F:→ realmeat: 这不是java的极限, 看来是android某个版本前的限制 06/23 11:38
13F:推 tbpfs: 这东西不是proguard就好了? 06/25 16:31
14F:→ HuangJC: proguard 是可以减少 method counts 没错,我们出货版有 06/26 23:31
15F:→ HuangJC: 做。但开发时可能需要步进执行,我就不知道 Eclipse 能不 06/26 23:32
16F:→ HuangJC: 能加入这步骤了(就算能,很耗时间也会想打人吧..) 06/26 23:33
17F:→ HuangJC: 另一个方法是把测好的模组移除,用这方法开发... 06/26 23:33
18F:→ HuangJC: 好吧,主管不肯(主管就是权力最大,年纪最大,最赶不上 06/26 23:33
19F:→ HuangJC: 潮流的人,嗯),我只不过说我把 code 摆上去,他如果跑不 06/26 23:34
20F:→ HuangJC: 动,只要手动删掉就可以执行,他就会骂说:你才应该在你 06/26 23:34
21F:→ HuangJC: 的电脑里保留,现在摆上去的版本先删掉 06/26 23:35
22F:→ HuangJC: 那这样暂时出一版给QA测的 beta 就永远不会有新模组啊... 06/26 23:35
23F:→ HuangJC: 好啦,老主管拖慢进度的事时有所闻,将来我也会老... 06/26 23:36
24F:→ HuangJC: 我不想把问题全归疚在学不会新把戏的主管身上.. 06/26 23:36
25F:→ HuangJC: (现在全部门都改用 Android Studio 了,主管还在用 06/26 23:36
26F:→ HuangJC: Eclipse,他说有远比升级 Compiler 更重要的事) 06/26 23:37
27F:→ HuangJC: 他掌握的是演算法,亲自 implement,我们只是会用新工具.. 06/26 23:37
28F:→ HuangJC: 说真的,他才是核心,我们还比较像免洗;随时一个刚毕业 06/26 23:37
29F:→ HuangJC: 的大学生能取代的是我们,不是他.. 06/26 23:38







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP