Android Studio 返回“代码过长”报错

2017 年 5 月 9 日
 sisteryu100

不好意思,Android 新手。 公司之前使用 eclipse 开发,但是后来发现 Android Studio 的一些新特性不错,所以把旧代码移植到 Android Studio 中。 但是导入过程中,有一个报错不知道怎么去掉。所以想问问大家。

15438 次点击
所在节点    Android
13 条回复
sisteryu100
2017 年 5 月 9 日
Gerhman
2017 年 5 月 9 日
那就弄短点啊
GoBeyond
2017 年 5 月 9 日
不应该啊。。感觉这种错误不只应该算 warning 么
flyingghost
2017 年 5 月 9 日
大小限制是有,但很大,64k。一般不写成神经病的代码不会触及这个天花板。
所以并不是这一行的长度问题。你得检查其他地方。
codehz
2017 年 5 月 9 日
@flyingghost #4 静态初始化也是在同一个“函数”里完成的。。。同样受到 64K 的限制
codehz
2017 年 5 月 9 日
java 对于数组的初始化在字节码层面是对每一个元素的执行赋值,类中所有的静态属性的赋值都在同一个函数中进行,java 对于单个函数的字节码限制是小于等于 64K,如果超出限制,javac 就会报错
Eclipse 估计是在编译之前自动对源代码进行转换,将大数组的初始化操作移动到另一个静态函数中去了
另外,这么大的数组(不是指这一行,前面肯定有更大的,这一行还不算太长)就不要直接写静态初始化了,直接内嵌资源更好。。。
HmyBmny
2017 年 5 月 9 日
估计是汉化翻译的问题,你换成英文看看?
sisteryu100
2017 年 5 月 9 日
@flyingghost
@codehz
谢谢帮忙,已经搞掂了。原来是撞到天花板了,这个类里面还有各种密钥数据,RSA 等等数据。所以超了 64K。
codehz
2017 年 5 月 9 日
@HmyBmny #7 代码过长这个是中文系统下 javac 的输出,与 AS 没啥关系的。。。
vjnjc
2017 年 5 月 9 日
长见识了!
bjzhou1990
2017 年 5 月 9 日
活久见
fy
2017 年 5 月 9 日
64k,确实活久见
gamexg
2018 年 6 月 6 日
这个怎么跑到首页了?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/360043

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX