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

2017-05-09 10:42:35 +08:00
 sisteryu100

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

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

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

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

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

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

© 2021 V2EX