web-dev-qa-db-ja.com

スレッド「メイン」の例外Java.lang.NoClassDefFoundError:junit / textui / ResultPrinter

AndroidプロジェクトをAndroid Studio 0.3.0でコンパイルしようとしています。今日、次のエラーが表示されます。

Exception in thread "main" Java.lang.NoClassDefFoundError: junit/textui/ResultPrinter
at Java.lang.Class.forName0(Native Method)
at Java.lang.Class.forName(Class.Java:188)
at com.intellij.rt.execution.application.AppMain.main(AppMain.Java:113)
Caused by: Java.lang.ClassNotFoundException: junit.textui.ResultPrinter
at Java.net.URLClassLoader$1.run(URLClassLoader.Java:217)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:205)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:321)
at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:294)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:266)
... 3 more

Process finished with exit code 1

いくつかのWeb検索を行うと、この問題は何らかの形でJUnitに関連していると思われます。ただし、プロジェクトでJUnitを使用していません。誤ってオプションをオンにした可能性がありますか?その場合、プロジェクトで単体テストを無効にするにはどうすればよいですか?何か案は?

62
Janne Oksanen

ついに見つけました。実行/デバッグ構成ダイアログにあります。 JUnitを無効にし、再度コンパイルします。

57
Janne Oksanen

通常、この問題はテストタイプが間違っているために発生します。 Junit Android Testの代わりに Select Android test instead of JUnitSelect Android test instead of JUnit

27
radistao

標準のJUnitテストでは、JUnitライブラリーが欠落しています。これをbuild.gradleに追加してみてください。

dependencies {
    ...
    testCompile 'junit:junit:4.12'
    ...
}

そして、テストを「main」パッケージと並行して「test」ディレクトリに配置していることを確認してください(計装テストは「androidTest」に入りますが、これは設定が異なります)。

8
powder366

メニューからプロジェクトを強制的に「同期」する:ツール> Android>プロジェクトをGradleファイルと同期するか、build.gradleファイルに偽の変更を加えてプロジェクトを強制的に「同期」する(スペースを追加するそれを削除して、「今すぐ同期」をクリックします)。

6
Pnemonic

実行/デバッグ構成では、AndroidTestsおよびJUnitTestsの下にMyTestがありました。 AndroidTestsの下のMyTestは正しく構成されましたが、まだ「NoClassDefFoundError:junit/textui/ResultPrinter」エラーが発生しました。 JUnitの下のMyTestをクリックし、左上の「-」を押しました。これにより、MyTestはデバイスを介してエラーを取り除くことができました。

1
flobacca

すべての答えは良いです-

SourceSetsにテストディレクトリが登録されていることを確認してください。

Android{
    ...

    defaultConfig {
         ...
         testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    }


    sourceSets {
        androidTest {
            Java.srcDirs = ['src/androidTest/Java']
        }
    }
}

dependencies{
    ... 
    androidTestCompile 'junit:junit:4.12'
    androidTestCompile 'com.Android.support.test:runner:0.5'
}
0
Manisha

いくつかのbuild.gradleプラグインと依存関係を変更した後、この問題が2回発生しました。

Android Studioをオフにして再びオンにするだけで修正されました(バージョン2.1.2および2.2)。

0
Tom