从Eclipse到Android Studio:由于巨大的方法,VFY被拒绝
我正在从Eclipse迁移到Android Studio,现在我的应用程序崩溃了,Logcat为不同的手机显示了不同的原因,但重点是我有一个非常大的方法。例如: 安卓6.0.1手机: 安卓2.3.6手机: 使用Eclipse,从Android 2.3.6开始,我就没有任何问题(我的应用程序只在Android版本低于2.3.6的手机上崩溃)。现在在Android Studio中,我的应用程序在所有版本的Android中都会崩溃 我已经读到文件的大小不应该给Android版本2.3.6和更高版本带来错误。Eclipse就是这样。我是Android Studio的新手;也许有一个兼容性问题很容易解决从Eclipse到Android Studio:由于巨大的方法,VFY被拒绝,android,eclipse,android-studio,verifyerror,Android,Eclipse,Android Studio,Verifyerror,我正在从Eclipse迁移到Android Studio,现在我的应用程序崩溃了,Logcat为不同的手机显示了不同的原因,但重点是我有一个非常大的方法。例如: 安卓6.0.1手机: 安卓2.3.6手机: 使用Eclipse,从Android 2.3.6开始,我就没有任何问题(我的应用程序只在Android版本低于2.3.6的手机上崩溃)。现在在Android Studio中,我的应用程序在所有版本的Android中都会崩溃 我已经读到文件的大小不应该给Android版本2.3.6和更高版本带来
建议:我决定重构方法并解决了问题。谢谢@howlger;64K限制是否与(寄存器数量)*(指令数量)中的2^21限制相同?看起来Android在很久以前就取消了2^21限制(或者可能是Eclipse编译器而不是Android取消了2^21限制?),即使在转换为Dalvik代码时出现错误,我猜这已经是由于不同的字节码造成的。我认为Eclipse和Android Studio在Java编译器(EclipseJava编译器与javac)方面有所不同,但在转换为Dalvik代码方面可能没有区别。但那只是猜测,很抱歉我不能回答你的问题。
java.lang.VerifyError: Verifier rejected class due to bad method
W/dalvikvm: VFY: warning: method is huge (regs=466 insnsSize=25467)