@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

