Internal Compiler error: Java.lang.VerifyError

200 views
Skip to first unread message

Akshat Jain

unread,
Nov 5, 2012, 8:16:19 AM11/5/12
to androi...@googlegroups.com

Hi Stephan,

I was facing problems with the androidmock downloaded from the downloads page and hence I decided to compile the code myself.

I added new Android 4.0.4 jar to the lib/android folder, modified the SdkVersions.java code to update the Enum and modified the build-framework-gen.xml to use the android_v404.jar instead of the android_v403.jar

I was able to successfully build the android_framework_mocks.jar and AndroidMockGenerator & AndroidMockRuntime.jar.

Now when I add these to my Mock project, I get the following errors for target version > 10. I am able to use the new compiled jars for API level 8 & 9, but not for any version > 10. 

This is the error I get in Eclipse:

Internal compiler error: java.lang.VerifyError: class v30.genmocks.android.widget.ImageViewDelegateSubclass overrides final method layout.(IIII)V at java.lang.ClassLoader.defineClass1(Native Method) BuildConfig.java /AndroidDemoAppAndroidMock/gen/com/yahoo/apg/AndroidDemoApp/test


Can you please suggest why this error and how to fix it?

Thanks,
Akshat

Message has been deleted
Message has been deleted

Akshat Jain

unread,
Nov 5, 2012, 12:15:05 PM11/5/12
to androi...@googlegroups.com
So I was able to run my mocks on the following platforms:
Android level 10, 12, & 15, but when I run it on Android 2.2 (8), the VM crashes with the following in logcat:

I am not sure why it is looking for v31 and v403 ImageViewDelegateSubclass ? ( my Android_Runtime points to android-15/android.jar)

Also there are no errors in the logfile.


D/installd(   35): DexInv: --- BEGIN '/data/app/com.yahoo.apg.AndroidDemoApp.test-1.apk' ---

W/dalvikvm(  322): Method Lv31/genmocks/android/widget/ImageViewDelegateSubclass;.layout overrides final Landroid/view/View;.layout

W/dalvikvm(  322): failed creating vtable

W/dalvikvm(  322): Method Lv403/genmocks/android/widget/ImageViewDelegateSubclass;.layout overrides final Landroid/view/View;.layout

W/dalvikvm(  322): failed creating vtable

D/


D/dalvikvm(  354): GC_FOR_MALLOC freed 8126 objects / 565072 bytes in 58ms

W/dalvikvm(  354): Method Lv31/genmocks/android/widget/ImageViewDelegateSubclass;.layout overrides final Landroid/view/View;.layout

W/dalvikvm(  354): failed creating vtable

W/dalvikvm(  354): Link of class 'Lv31/genmocks/android/widget/ImageViewDelegateSubclass;' failed

W/ClassPathPackageInfoSource(  354): Cannot load class. Make sure it is in your apk. Class name: 'v31.genmocks.android.widget.ImageViewDelegateSubclass'. Message: v31.genmocks.android.widget.ImageViewDelegateSubclass

W/ClassPathPackageInfoSource(  354): java.lang.ClassNotFoundException: v31.genmocks.android.widget.ImageViewDelegateSubclass

W/ClassPathPackageInfoSource(  354): at java.lang.Class.classForName(Native Method)

W/ClassPathPackageInfoSource(  354): at java.lang.Class.forName(Class.java:235)

W/ClassPathPackageInfoSource(  354): at android.test.ClassPathPackageInfoSource.createPackageInfo(ClassPathPackageInfoSource.java:89)

W/ClassPathPackageInfoSource(  354): at android.test.ClassPathPackageInfoSource.access$000(ClassPathPackageInfoSource.java:40)

W/ClassPathPackageInfoSource(  354): at android.test.ClassPathPackageInfoSource$1.load(ClassPathPackageInfoSource.java:51)

W/ClassPathPackageInfoSource(  354): at android.test.ClassPathPackageInfoSource$1.load(ClassPathPackageInfoSource.java:50)

W/ClassPathPackageInfoSource(  354): at android.test.SimpleCache.get(SimpleCache.java:31)

W/ClassPathPackageInfoSource(  354): at android.test.ClassPathPackageInfoSource.getPackageInfo(ClassPathPackageInfoSource.java:73)

W/ClassPathPackageInfoSource(  354): at android.test.ClassPathPackageInfo.getSubpackages(ClassPathPackageInfo.java:48)

W/ClassPathPackageInfoSource(  354): at android.test.ClassPathPackageInfo.addTopLevelClassesTo(ClassPathPackageInfo.java:61)

W/ClassPathPackageInfoSource(  354): at android.test.ClassPathPackageInfo.getTopLevelClassesRecursive(ClassPathPackageInfo.java:55)

W/ClassPathPackageInfoSource(  354): at android.test.suitebuilder.TestGrouping.testCaseClassesInPackage(TestGrouping.java:154)

W/ClassPathPackageInfoSource(  354): at android.test.suitebuilder.TestGrouping.addPackagesRecursive(TestGrouping.java:115)

W/ClassPathPackageInfoSource(  354): at android.test.suitebuilder.TestSuiteBuilder.includePackages(TestSuiteBuilder.java:103)

W/ClassPathPackageInfoSource(  354): at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:360)

W/ClassPathPackageInfoSource(  354): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4218)

W/ClassPathPackageInfoSource(  354): at android.app.ActivityThread.access$3000(ActivityThread.java:125)

W/ClassPathPackageInfoSource(  354): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2071)

W/ClassPathPackageInfoSource(  354): at android.os.Handler.dispatchMessage(Handler.java:99)

W/ClassPathPackageInfoSource(  354): at android.os.Looper.loop(Looper.java:123)

W/ClassPathPackageInfoSource(  354): at android.app.ActivityThread.main(ActivityThread.java:4627)

W/ClassPathPackageInfoSource(  354): at java.lang.reflect.Method.invokeNative(Native Method)

W/ClassPathPackageInfoSource(  354): at java.lang.reflect.Method.invoke(Method.java:521)

W/ClassPathPackageInfoSource(  354): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)

W/ClassPathPackageInfoSource(  354): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)

W/ClassPathPackageInfoSource(  354): at dalvik.system.NativeStart.main(Native Method)

W/ClassPathPackageInfoSource(  354): Caused by: java.lang.NoClassDefFoundError: v31.genmocks.android.widget.ImageViewDelegateSubclass

W/ClassPathPackageInfoSource(  354): ... 26 more

W/ClassPathPackageInfoSource(  354): Caused by: java.lang.VirtualMachineError

W/ClassPathPackageInfoSource(  354): at dalvik.system.DexFile.defineClass(Native Method)

W/ClassPathPackageInfoSource(  354): at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:209)

W/ClassPathPackageInfoSource(  354): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:203)

W/ClassPathPackageInfoSource(  354): at java.lang.ClassLoader.loadClass(ClassLoader.java:573)

W/ClassPathPackageInfoSource(  354): at java.lang.ClassLoader.loadClass(ClassLoader.java:532)

W/ClassPathPackageInfoSource(  354): ... 26 more

D/dalvikvm(  251): GC_EXPLICIT freed 120 objects / 9696 bytes in 995ms

I/DEBUG   (   31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

I/DEBUG   (   31): Build fingerprint: 'generic/sdk/generic/:2.2/FRF91/43546:eng/test-keys'



On Monday, 5 November 2012 22:11:31 UTC+5:30, Akshat Jain wrote:
After some digging here is what I found:

Apparently  the method : layout(int,int,int,int) in View.java for Android 2.2 was a final method and hence not generated in the ViewDelegateInterface.class.

After maybe 3.0, the final modifier was removed and this method is present in the ViewDelegateInterface.class and the ImageViewDelegateInterface.class


Update:

After few restarts of eclipse and putting the original android_framework_mocks.jar and compiling my own AndroidMockGenerator and Runtime jars, I was able to get this to work.
Awesome !!!

-Akshat


On Monday, 5 November 2012 18:48:03 UTC+5:30, Akshat Jain wrote:
Sorry, I mean API Level 11 and onwards i get that error.
Reply all
Reply to author
Forward
0 new messages