Hi All,
I'm getting VerifyErrors when running unit tests. My tests are setup
as a separate eclipse project which references the project I am
testing. I have a class in my project which I use fairly heavily in my
test project and this class is getting rejected by Dalvik. I had a
look around and found this:
http://groups.google.com/group/android-developers/browse_thread/thread/5537ae10e4143240.
I also have a third party jar on the build path of both the project
under test and the test project. This causes no problems when running
the project under test so I can't see why it should when running the
test project, basically I'm stumped.
I have posted the error text below, MyProjectClass is a class in the
project under test which is used fairly heavily in the test project.
ThirdPartyInterface is an interface from a third party jar which is
implemented by MyProjectClass.
W/dalvikvm( 969): Class resolved by unexpected DEX:
Lmyproject.mypackage/android/data/MyProjectClass;(0x437359d0):0x1945e0
ref [Lmyproject.mypackage/ThirdPartyInterface;] Lmyproject.mypackage/
ThirdPartyInterface;(0x437359d0):0x18f2b0
I/dalvikvm( 969): Failed resolving Lmyproject.mypackage/android/data/
MyProjectClass; interface 410 'Lmyproject.mypackage/
ThirdPartyInterface;'
W/dalvikvm( 969): Link of class 'Lmyproject.mypackage/android/data/
MyProjectClass;' failed
W/dalvikvm( 969): VFY: unable to find class referenced in signature
(Lmyproject.mypackage/android/data/MyProjectClass;)
W/dalvikvm( 969): Class resolved by unexpected DEX:
Lmyproject.mypackage/android/data/MyProjectClass;(0x437359d0):0x1945e0
ref [Lmyproject.mypackage/ThirdPartyInterface;] Lmyproject.mypackage/
ThirdPartyInterface;(0x437359d0):0x18f2b0
I/dalvikvm( 969): Failed resolving Lmyproject.mypackage/android/data/
MyProjectClass; interface 410 'Lmyproject.mypackage/
ThirdPartyInterface;'
W/dalvikvm( 969): Link of class 'Lmyproject.mypackage/android/data/
MyProjectClass;' failed
E/dalvikvm( 969): Could not find method
myproject.mypackage.MyProjectClass.getName, referenced from method
myproject.mypackage.MyTestCase.myTestMethod
W/dalvikvm( 969): VFY: unable to resolve virtual method 1492:
Lmyproject.mypackage/android/data/MyProjectClass.getName ()Ljava/lang/
String;
W/dalvikvm( 969): VFY: rejecting opcode 0x6e at 0x000a
W/dalvikvm( 969): VFY: rejected Lmyproject.mypackage/android/data/
MyTestCase.myTestMethod ()V
W/dalvikvm( 969): Verifier rejected class Lmyproject.mypackage/
android/data/MyTestCase;
D/AndroidRuntime( 969): Shutting down VM
W/dalvikvm( 969): threadid=3: thread exiting with uncaught exception
(group=0x4000fe70)
E/AndroidRuntime( 969): Uncaught handler: thread main exiting due to
uncaught exception
E/AndroidRuntime( 969): java.lang.VerifyError:
myproject.mypackage.MyTestCase
E/AndroidRuntime( 969): at java.lang.Class.getDeclaredConstructors
(Native Method)
E/AndroidRuntime( 969): at java.lang.Class.getConstructor(Class.java:
484)
E/AndroidRuntime( 969): at
junit.framework.TestSuite.getTestConstructor(TestSuite.java:177)
E/AndroidRuntime( 969): at junit.framework.TestSuite.<init>
(TestSuite.java:59)
E/AndroidRuntime( 969): at junit.runner.BaseTestRunner.getTest
(BaseTestRunner.java:103)
E/AndroidRuntime( 969): at android.test.AndroidTestRunner.getTest
(AndroidTestRunner.java:124)
E/AndroidRuntime( 969): at
android.test.AndroidTestRunner.setTestClassName(AndroidTestRunner.java:
52)
E/AndroidRuntime( 969): at
android.test.suitebuilder.TestSuiteBuilder.addTestClassByName
(TestSuiteBuilder.java:81)
E/AndroidRuntime( 969): at
android.test.InstrumentationTestRunner.parseTestClass
(InstrumentationTestRunner.java:368)
E/AndroidRuntime( 969): at
android.test.InstrumentationTestRunner.parseTestClasses
(InstrumentationTestRunner.java:350)
E/AndroidRuntime( 969): at
android.test.InstrumentationTestRunner.onCreate
(InstrumentationTestRunner.java:318)
E/AndroidRuntime( 969): at
android.app.ActivityThread.handleBindApplication(ActivityThread.java:
3601)
E/AndroidRuntime( 969): at android.app.ActivityThread.access$2500
(ActivityThread.java:112)
E/AndroidRuntime( 969): at android.app.ActivityThread$H.handleMessage
(ActivityThread.java:1729)
E/AndroidRuntime( 969): at android.os.Handler.dispatchMessage
(Handler.java:99)
E/AndroidRuntime( 969): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 969): at android.app.ActivityThread.main
(ActivityThread.java:3948)
E/AndroidRuntime( 969): at java.lang.reflect.Method.invokeNative
(Native Method)
E/AndroidRuntime( 969): at java.lang.reflect.Method.invoke
(Method.java:521)
E/AndroidRuntime( 969): at com.android.internal.os.ZygoteInit
$MethodAndArgsCaller.run(ZygoteInit.java:782)
E/AndroidRuntime( 969): at com.android.internal.os.ZygoteInit.main
(ZygoteInit.java:540)
E/AndroidRuntime( 969): at dalvik.system.NativeStart.main(Native
Method)
I/Process ( 604): Sending signal. PID: 969 SIG: 3
W/ActivityManager( 604): Error in app myapp running instrumentation
ComponentInfo{myandroidtestpackage/
android.test.InstrumentationTestRunner}:
W/ActivityManager( 604): myproject.mypackage.MyTestCase
W/ActivityManager( 604): java.lang.VerifyError:
myproject.mypackage.MyTestCase
Really grateful for any help, have been banging my head against this
all day.
Cheers
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---