sisteryu100
V2EX  ›  Android

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

  •  
  •   sisteryu100 · May 9, 2017 · 15437 views
    This topic created in 3315 days ago, the information mentioned may be changed or developed.

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

    13 replies    2018-06-06 18:55:46 +08:00
    Gerhman
        2
    Gerhman  
       May 9, 2017
    那就弄短点啊
    GoBeyond
        3
    GoBeyond  
       May 9, 2017 via Android
    不应该啊。。感觉这种错误不只应该算 warning 么
    flyingghost
        4
    flyingghost  
       May 9, 2017   ❤️ 1
    大小限制是有,但很大,64k。一般不写成神经病的代码不会触及这个天花板。
    所以并不是这一行的长度问题。你得检查其他地方。
    codehz
        5
    codehz  
       May 9, 2017
    @flyingghost #4 静态初始化也是在同一个“函数”里完成的。。。同样受到 64K 的限制
    codehz
        6
    codehz  
       May 9, 2017   ❤️ 1
    java 对于数组的初始化在字节码层面是对每一个元素的执行赋值,类中所有的静态属性的赋值都在同一个函数中进行,java 对于单个函数的字节码限制是小于等于 64K,如果超出限制,javac 就会报错
    Eclipse 估计是在编译之前自动对源代码进行转换,将大数组的初始化操作移动到另一个静态函数中去了
    另外,这么大的数组(不是指这一行,前面肯定有更大的,这一行还不算太长)就不要直接写静态初始化了,直接内嵌资源更好。。。
    HmyBmny
        7
    HmyBmny  
       May 9, 2017 via Android
    估计是汉化翻译的问题,你换成英文看看?
    sisteryu100
        8
    sisteryu100  
    OP
       May 9, 2017
    @flyingghost
    @codehz
    谢谢帮忙,已经搞掂了。原来是撞到天花板了,这个类里面还有各种密钥数据,RSA 等等数据。所以超了 64K。
    codehz
        9
    codehz  
       May 9, 2017
    @HmyBmny #7 代码过长这个是中文系统下 javac 的输出,与 AS 没啥关系的。。。
    vjnjc
        10
    vjnjc  
       May 9, 2017
    长见识了!
    bjzhou1990
        11
    bjzhou1990  
       May 9, 2017
    活久见
    fy
        12
    fy  
       May 9, 2017
    64k,确实活久见
    gamexg
        13
    gamexg  
       Jun 6, 2018 via Android
    这个怎么跑到首页了?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2724 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 02:16 · PVG 10:16 · LAX 19:16 · JFK 22:16
    ♥ Do have faith in what you're doing.