2015-03-25 2 views
6

Я создал модульные тесты как на http://tools.android.com/tech-docs/unit-testing-support, но когда я запускаю их, я получаю исключение:Исключение запуска тестов JUnit с AndroidStudio: java.lang.NoClassDefFoundError: Android/OS/Parcelable

java.lang.NoClassDefFoundError: android/os/Parcelable 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2615) 
    at java.lang.Class.getDeclaredMethods(Class.java:1860) 
    at org.junit.internal.MethodSorter.getDeclaredMethods(MethodSorter.java:54) 
    at org.junit.internal.runners.JUnit38ClassRunner.<init>(JUnit38ClassRunner.java:74) 
    at org.junit.internal.builders.JUnit3Builder.runnerForClass(JUnit3Builder.java:11) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33) 
    at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:36) 
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:41) 
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211) 
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134) 
Caused by: java.lang.ClassNotFoundException: android.os.Parcelable 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    ... 33 more 

Здесь вы фрагмент одного из моих тестов:

package com.aadhk.woinvoice.bean; 

import com.aadhk.woinvoice.util.Constant; 

import junit.framework.TestCase; 

import java.util.ArrayList; 
import java.util.List; 

public class InvoiceCalculatorTest extends TestCase { 
    private static final double EPSILON = 1e-4; 

    public void testNoTaxNoDiscount() { 
    Invoice invoice = new Invoice(); 
    List<InvoiceItem> items = new ArrayList<>(); 
    InvoiceItem item = new InvoiceItem(); 

Я использую Android Studio 1.1, с Android Plugin версии 1.1.3 и Gradle версии 2.2.1.

В моем коде есть интерфейс Parceable, но я надеялся, что есть способ запустить эти тесты. Сами тесты сами не используют и не используют Parceable.

+0

тесты прекрасно работать из командной строки ./gradlew testFreeDebug --tests = «*. InvoiceCalculatorTest» –

+0

Я не отправляю это как ответ, потому что я не знаю, почему она фиксирована. Я также обновил студию android до 1.3.0, и внезапно я смог запустить тесты снова по отдельности. Плагин также 1.3.0 – Fred

ответ

0

Просто натолкнулся на это, используя IntelliJ, но я бы предположил, что это будет работать и для Android Studio.

Я решил проблему, отредактировав конфигурацию прогона/отладки для моего теста и проверив «Использовать альтернативную JRE» и попробовав другую платформу Android. Я бы рекомендовал попробовать разные и посмотреть, разрешит ли он проблему. Test Configuration Screenshot

Смежные вопросы