gpt4 book ai didi

java - 使用 AndroidStudio 运行 JUnit 测试时出现异常 : java. lang.NoClassDefFoundError: android/os/Parcelable

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:15:46 26 4
gpt4 key购买 nike

我已经根据 http://tools.android.com/tech-docs/unit-testing-support 创建了单元测试,但是当我运行它们时出现异常:

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

这是我的一个测试的 fragment :

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 插件版本 1.1.3 和 Gradle 版本 2.2.1。

我的相关代码确实实现了 Parceable 接口(interface),但我希望有一种方法可以运行这些测试。测试本身不以任何方式行使或使用 Parceable。

最佳答案

刚刚使用 IntelliJ 遇到了这个问题,但我想这也适用于 Android Studio。

我通过为我的测试编辑运行/调试配置并选中“使用替代 JRE”并尝试不同的 Android 平台来解决这个问题。我建议尝试不同的方法,看看它是否能解决问题。 Test Configuration Screenshot

关于java - 使用 AndroidStudio 运行 JUnit 测试时出现异常 : java. lang.NoClassDefFoundError: android/os/Parcelable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29265534/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com