@Streets of Boston
Thanks for your suggestion. I'll give that a try later. It sounds
promising indeed, as the error seems to indicate different versions of
the same classes.

@A. Elk
No, the tests fail in Eclipse, but halfway the logging I saw a message
"passed":
08-04 09:27:35.392: INFO/TestRunner(817): passed:
testAddMeasurement(nl.kransen.consumption.android.test.MeterstandenDaoImplTest)
Then later in the same run, it shows an error:
08-04 09:36:15.583: ERROR/dalvikvm(878): Could not find class
'nl.kransen.consumption.android.dao.MeasurementDaoImpl', referenced
from method
nl.kransen.consumption.android.test.MeterstandenDaoImplTest.setUp

I want to avoid building the library on the class path, as it is a
parallel project in Eclipse. If the hint by Streets of Boston does not
work, I will have no other choice probably.

Thanks for your replies!

Jeroen

On 4 aug, 22:12, "A. Elk" <[email protected]> wrote:
> I'm a bit confused here. You say that the tests run successfully in
> the emulator, correct? Is this under Eclipse?
>
> It looks as if you're getting class resolution errors in the Loader.
> I'm not sure why this is happening, but I would guess that the class
> loader is seeing the library classes in your test package, not your
> main application. These classes may be out of sync with the classes
> expected by the main application. Remember that in a test, you're
> running both test and app in the same process, so the loader may not
> try to load library classes twice.
>
> Build the library into the main app and export the classes, and then
> (I think this is right) make the test project dependent on the main
> app but *not* the library project. I think that should work.
>
> A.
>
> On Aug 4, 2:45 am, Jeroen Kransen <[email protected]> wrote:
>
> > I have a and Android project and its test project. I can run tests
> > successfully in the emulator. As the Android project has dependencies
> > on a third library project, I want to use classes of the third project
> > in the test cases too. For this, I need to add a dependency from the
> > test project to the third project as well. Compile-time this works,
> > but when I do a remote run of my AndroidTestCase, all tests fail. For
> > each test, I get a NoClassDefFoundError, but not for third project
> > classes, but for a class in the Android project itself!
>
> > In the LogCat I also get very interesting messages:
>
> > 08-04 09:27:35.163: WARN/dalvikvm(817): Class resolved by unexpected
> > DEX: Lnl/kransen/consumption/android/dao/MeasurementDaoImpl;
> > (0x43d0c940):0x136900 ref [Lnl/kransen/consumption/dao/
> > MeasurementDao;] Lnl/kransen/consumption/dao/MeasurementDao;
> > (0x43d0c940):0x116b20
> > 08-04 09:27:35.163: WARN/dalvikvm(817): (Lnl/kransen/consumption/
> > android/dao/MeasurementDaoImpl; had used a different Lnl/kransen/
> > consumption/dao/MeasurementDao; during pre-verification)
> > 08-04 09:27:35.172: INFO/dalvikvm(817): Failed resolving Lnl/kransen/
> > consumption/android/dao/MeasurementDaoImpl; interface 127 'Lnl/kransen/
> > consumption/dao/MeasurementDao;'
> > 08-04 09:27:35.172: WARN/dalvikvm(817): Link of class 'Lnl/kransen/
> > consumption/android/dao/MeasurementDaoImpl;' failed
> > 08-04 09:27:35.172: ERROR/dalvikvm(817): Could not find class
> > 'nl.kransen.consumption.android.dao.MeasurementDaoImpl', referenced
> > from method
> > nl.kransen.consumption.android.test.MeterstandenDaoImplTest.setUp
> > 08-04 09:27:35.182: WARN/dalvikvm(817): VFY: unable to resolve new-
> > instance 41 (Lnl/kransen/consumption/android/dao/MeasurementDaoImpl;)
> > in Lnl/kransen/consumption/android/test/MeterstandenDaoImplTest;
> > 08-04 09:27:35.182: DEBUG/dalvikvm(817): VFY: replacing opcode 0x22 at
> > 0x000c
> > 08-04 09:27:35.192: DEBUG/dalvikvm(817): Making a copy of Lnl/kransen/
> > consumption/android/test/MeterstandenDaoImplTest;.setUp code (64
> > bytes)
> > 08-04 09:27:35.192: WARN/dalvikvm(817): Class resolved by unexpected
> > DEX: Lnl/kransen/consumption/android/dao/MeasurementDaoImpl;
> > (0x43d0c940):0x136900 ref [Lnl/kransen/consumption/dao/
> > MeasurementDao;] Lnl/kransen/consumption/dao/MeasurementDao;
> > (0x43d0c940):0x116b20
> > 08-04 09:27:35.203: WARN/dalvikvm(817): (Lnl/kransen/consumption/
> > android/dao/MeasurementDaoImpl; had used a different Lnl/kransen/
> > consumption/dao/MeasurementDao; during pre-verification)
> > 08-04 09:27:35.203: INFO/dalvikvm(817): Failed resolving Lnl/kransen/
> > consumption/android/dao/MeasurementDaoImpl; interface 127 'Lnl/kransen/
> > consumption/dao/MeasurementDao;'
> > 08-04 09:27:35.213: WARN/dalvikvm(817): Link of class 'Lnl/kransen/
> > consumption/android/dao/MeasurementDaoImpl;' failed
> > 08-04 09:27:35.222: WARN/dalvikvm(817): Class resolved by unexpected
> > DEX: Lnl/kransen/consumption/android/dao/MeasurementDaoImpl;
> > (0x43d0c940):0x136900 ref [Lnl/kransen/consumption/dao/
> > MeasurementDao;] Lnl/kransen/consumption/dao/MeasurementDao;
> > (0x43d0c940):0x116b20
> > 08-04 09:27:35.222: WARN/dalvikvm(817): (Lnl/kransen/consumption/
> > android/dao/MeasurementDaoImpl; had used a different Lnl/kransen/
> > consumption/dao/MeasurementDao; during pre-verification)
> > 08-04 09:27:35.222: INFO/dalvikvm(817): Failed resolving Lnl/kransen/
> > consumption/android/dao/MeasurementDaoImpl; interface 127 'Lnl/kransen/
> > consumption/dao/MeasurementDao;'
> > 08-04 09:27:35.222: WARN/dalvikvm(817): Link of class 'Lnl/kransen/
> > consumption/android/dao/MeasurementDaoImpl;' failed
> > 08-04 09:27:35.232: INFO/dalvikvm(817): Could not find method
> > nl.kransen.consumption.android.dao.MeasurementDaoImpl.close,
> > referenced from method
> > nl.kransen.consumption.android.test.MeterstandenDaoImplTest.tearDown
> > 08-04 09:27:35.232: WARN/dalvikvm(817): VFY: unable to resolve virtual
> > method 80: Lnl/kransen/consumption/android/dao/
> > MeasurementDaoImpl;.close ()V
> > 08-04 09:27:35.232: DEBUG/dalvikvm(817): VFY: replacing opcode 0x6e at
> > 0x0002
> > 08-04 09:27:35.244: DEBUG/dalvikvm(817): Making a copy of Lnl/kransen/
> > consumption/android/test/MeterstandenDaoImplTest;.tearDown code (28
> > bytes)
> > 08-04 09:27:35.244: WARN/dalvikvm(817): Class resolved by unexpected
> > DEX: Lnl/kransen/consumption/android/dao/MeasurementDaoImpl;
> > (0x43d0c940):0x136900 ref [Lnl/kransen/consumption/dao/
> > MeasurementDao;] Lnl/kransen/consumption/dao/MeasurementDao;
> > (0x43d0c940):0x116b20
> > 08-04 09:27:35.253: WARN/dalvikvm(817): (Lnl/kransen/consumption/
> > android/dao/MeasurementDaoImpl; had used a different Lnl/kransen/
> > consumption/dao/MeasurementDao; during pre-verification)
> > 08-04 09:27:35.253: INFO/dalvikvm(817): Failed resolving Lnl/kransen/
> > consumption/android/dao/MeasurementDaoImpl; interface 127 'Lnl/kransen/
> > consumption/dao/MeasurementDao;'
> > 08-04 09:27:35.263: WARN/dalvikvm(817): Link of class 'Lnl/kransen/
> > consumption/android/dao/MeasurementDaoImpl;' failed
> > 08-04 09:27:35.263: WARN/dalvikvm(817): Class resolved by unexpected
> > DEX: Lnl/kransen/consumption/android/dao/MeasurementDaoImpl;
> > (0x43d0c940):0x136900 ref [Lnl/kransen/consumption/dao/
> > MeasurementDao;] Lnl/kransen/consumption/dao/MeasurementDao;
> > (0x43d0c940):0x116b20
> > 08-04 09:27:35.273: WARN/dalvikvm(817): (Lnl/kransen/consumption/
> > android/dao/MeasurementDaoImpl; had used a different Lnl/kransen/
> > consumption/dao/MeasurementDao; during pre-verification)
> > 08-04 09:27:35.273: INFO/dalvikvm(817): Failed resolving Lnl/kransen/
> > consumption/android/dao/MeasurementDaoImpl; interface 127 'Lnl/kransen/
> > consumption/dao/MeasurementDao;'
> > 08-04 09:27:35.273: WARN/dalvikvm(817): Link of class 'Lnl/kransen/
> > consumption/android/dao/MeasurementDaoImpl;' failed
> > 08-04 09:27:35.273: INFO/dalvikvm(817): Could not find method
> > nl.kransen.consumption.android.dao.MeasurementDaoImpl.saveMeasurement,
> > referenced from method
> > nl.kransen.consumption.android.test.MeterstandenDaoImplTest.testAddMeasurem 
> > ent
> > 08-04 09:27:35.283: WARN/dalvikvm(817): VFY: unable to resolve virtual
> > method 81: Lnl/kransen/consumption/android/dao/
> > MeasurementDaoImpl;.saveMeasurement (Lnl/kransen/consumption/
> > Measurement;)V
> > 08-04 09:27:35.292: DEBUG/dalvikvm(817): VFY: replacing opcode 0x6e at
> > 0x001f
> > 08-04 09:27:35.292: DEBUG/dalvikvm(817): Making a copy of Lnl/kransen/
> > consumption/android/test/MeterstandenDaoImplTest;.testAddMeasurement
> > code (88 bytes)
> > 08-04 09:27:35.292: WARN/dalvikvm(817): Class resolved by unexpected
> > DEX: Lnl/kransen/consumption/android/dao/MeasurementDaoImpl;
> > (0x43d0c940):0x136900 ref [Lnl/kransen/consumption/dao/
> > MeasurementDao;] Lnl/kransen/consumption/dao/MeasurementDao;
> > (0x43d0c940):0x116b20
> > 08-04 09:27:35.292: WARN/dalvikvm(817): (Lnl/kransen/consumption/
> > android/dao/MeasurementDaoImpl; had used a different Lnl/kransen/
> > consumption/dao/MeasurementDao; during pre-verification)
> > 08-04 09:27:35.292: INFO/dalvikvm(817): Failed resolving Lnl/kransen/
> > consumption/android/dao/MeasurementDaoImpl; interface 127 'Lnl/kransen/
> > consumption/dao/MeasurementDao;'
> > 08-04 09:27:35.292: WARN/dalvikvm(817): Link of class 'Lnl/kransen/
> > consumption/android/dao/MeasurementDaoImpl;' failed
> > 08-04 09:27:35.343: INFO/TestRunner(817): started:
> > testAddMeasurement(nl.kransen.consumption.android.test.MeterstandenDaoImplT 
> > est)
> > 08-04 09:27:35.392: INFO/TestRunner(817): finished:
> > testAddMeasurement(nl.kransen.consumption.android.test.MeterstandenDaoImplT 
> > est)
> > 08-04 09:27:35.392: INFO/TestRunner(817): passed:
> > testAddMeasurement(nl.kransen.consumption.android.test.MeterstandenDaoImplT 
> > est)
> > 08-04 09:27:35.404: INFO/TestRunner(817): started:
> > testDaoPresent(nl.kransen.consumption.android.test.MeterstandenDaoImplTest)
> > 08-04 09:27:35.422: INFO/TestRunner(817): finished:
> > testDaoPresent(nl.kransen.consumption.android.test.MeterstandenDaoImplTest)
> > 08-04 09:27:35.422: INFO/TestRunner(817): passed:
> > testDaoPresent(nl.kransen.consumption.android.test.MeterstandenDaoImplTest)
> > 08-04 09:27:35.433: INFO/TestRunner(817): started:
> > testAndroidTestCaseSetupProperly(nl.kransen.consumption.android.test.Meters 
> > tandenDaoImplTest)
> > 08-04 09:27:35.453: INFO/TestRunner(817): finished:
> > testAndroidTestCaseSetupProperly(nl.kransen.consumption.android.test.Meters 
> > tandenDaoImplTest)
> > 08-04 09:27:35.453: INFO/TestRunner(817): passed:
> > testAndroidTestCaseSetupProperly(nl.kransen.consumption.android.test.Meters 
> > tandenDaoImplTest)
>
> > So it says all tests "passed", although the class MeasurementDaoImpl
> > was not found?
>
> > Then immediately after that, it seems to run the tests again, but then
> > they fail:
>
> > 08-04 09:36:15.562: WARN/dalvikvm(878): Class resolved by unexpected
> > DEX: Lnl/kransen/consumption/android/dao/MeasurementDaoImpl;
> > (0x43d0c940):0x125890 ref [Lnl/kransen/consumption/dao/
> > MeasurementDao;] Lnl/kransen/consumption/dao/MeasurementDao;
> > (0x43d0c940):0x11fb40
> > 08-04 09:36:15.562: WARN/dalvikvm(878):
>
> ...
>
> meer lezen »

-- 
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

Reply via email to