質問

私は現在単体テストを作成しているAndroidアプリケーションを開発しました。 私は2番目のプロジェクトを作成しました(ProjectNameとして ".test"をサフィックスされ、ターゲットとして元のプロジェクトを選択しました。

マイオリジナルプロジェクトには、いくつかの外部JARファイルが含まれています。

テストプロジェクトのビルドパスでも、これらのJARファイルを参照せずにテストからすべてのメソッドにアクセスできない。 例として、このエラーが発生します:

The type com.j256.ormlite.android.apptools.OrmLiteBaseService cannot be resolved. It is indirectly referenced from required .class files
.

テストは正しく機能します(これらの方法にアクセスしない場合)。

テストプロジェクトのビルドパスに必要なJARファイルを含める場合は、このエラーが発生しました。

05-16 15:59:03.732: INFO/TestRunner(1222): java.lang.NoClassDefFoundError: sw6.visualschedule.persistence.DatabaseHelper
05-16 15:59:03.732: INFO/TestRunner(1222):     at sw6.visualschedule.test.ScheduleActivityTest.setUp(ScheduleActivityTest.java:22)
05-16 15:59:03.732: INFO/TestRunner(1222):     at junit.framework.TestCase.runBare(TestCase.java:125)
05-16 15:59:03.732: INFO/TestRunner(1222):     at junit.framework.TestResult$1.protect(TestResult.java:106)
05-16 15:59:03.732: INFO/TestRunner(1222):     at junit.framework.TestResult.runProtected(TestResult.java:124)
05-16 15:59:03.732: INFO/TestRunner(1222):     at junit.framework.TestResult.run(TestResult.java:109)
05-16 15:59:03.732: INFO/TestRunner(1222):     at junit.framework.TestCase.run(TestCase.java:118)
05-16 15:59:03.732: INFO/TestRunner(1222):     at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
05-16 15:59:03.732: INFO/TestRunner(1222):     at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
05-16 15:59:03.732: INFO/TestRunner(1222):     at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:520)
05-16 15:59:03.732: INFO/TestRunner(1222):     at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)
.

NoClassDeffoundErrorをどのように解決できますか? 私はプロジェクト内のクラスを参照してから本当に混乱しています、そしてそれは外部jarファイルがビルドパスに含まれていないときに機能します。

OSX上のEclipseを使用しています。

役に立ちましたか?

解決

これらのlibsをプロジェクトのテストにエクスポートしますが、テストプロジェクトで参照してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top