- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 PowerMock 和 Mockito 来测试静态函数,如下所示。它过去一直运行良好,直到今天它抛出了下面提到的这个异常。
// this test case need to mock static methods so it uses PowerMock
@RunWith(PowerMockRunner.class)
// this static methods to be mocked are on Environment so that must be 'prepared'
@PrepareForTest({Environment.class, Build.class, Build.VERSION.class})
public class FileUtilityUnitTest {
//This uses the JUnit TemporaryFolder Rule to create
// (and discard on completion) a directory for the assertions.
@Rule
TemporaryFolder storageDirectory = new TemporaryFolder();
File nonExistentDirectory;
File existentDirectory;
@Before
public void setup(){
PowerMockito.mockStatic(Environment.class);
PowerMockito.mockStatic(Build.VERSION.class);
nonExistentDirectory = Mockito.mock(File.class);
//so the exists method tends to be false
when(nonExistentDirectory.exists()).thenReturn(false);
existentDirectory = storageDirectory.getRoot();
}
@Test
public void test_is_external_storage_writable(){
when(Environment.getExternalStorageState()).thenReturn(Environment.MEDIA_MOUNTED);
assertTrue("External storage mounted ", Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED);
}
}
堆栈跟踪如下。
Internal Error occured.
java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:724)
at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:531)
at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:355)
at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:286)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:120)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72)
at java.lang.Class.createAnnotationData(Class.java:3521)
at java.lang.Class.annotationData(Class.java:3510)
at java.lang.Class.getAnnotation(Class.java:3415)
at com.intellij.junit4.JUnit4TestRunnerUtil.buildRequest(JUnit4TestRunnerUtil.java:150)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:93)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
任何人都可以分享一些关于这方面的信息。我一直在谷歌搜索,但找不到好的引用。提前致谢。
最佳答案
我今天遇到了同样的问题。我不确定发生了什么,但是通过更新 compileSdkVersion
、buildToolsVersion
和 targetSdkVersion
来匹配 support-annotations
版本,问题消失了。
现在 build.gradle
看起来像:
android {
compileSdkVersion 27
buildToolsVersion "27.0.2"
defaultConfig {
...
targetSdkVersion 27
}
}
dependencies {
compile 'com.android.support:support-annotations:27.0.2'
androidTestCompile 'com.android.support:support-annotations:27.0.2'
}
我找不到太多关于它的评论,所以我希望我能帮助别人。
关于java - ArrayStoreException : sun. reflect.annotation.TypeNotPresentExceptionProxy 安卓 PowerMock JUnit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46738286/
从 Surefire 2.6 升级到 Surefire 2.13 时,我在运行单元测试时收到 TypeNotPresentExceptionProxy。 java.lang.ArrayStoreExc
我有一个看起来像这样的 JPA 实体。请注意 @EntityListeners 注释: import javax.persistence.EntityListeners; import org.spr
我有一个带有 spring 数据 jpa 1.2.0.RELEASE 的 spring 3.2.0.M2 设置。 我也有java配置。这是我的存储库配置类。 @Configuration @Enabl
运行mvn clean verify -P P1时我得到这个奇怪的堆栈跟踪 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-
我正在尝试在 JBoss 6.0 上部署我的项目。我正在使用 Netbeans 7.0.1、Spring 3.0.2 和 JSF2.0。该项目在 Tomcat 中运行良好。但是当我尝试在 JBoss
我的问题是我正在尝试模拟 BluetoothDevice 进行一些测试,但这是最后一个类。因此,要使用 PowerMock 模拟它,我必须使用 @PrepareForTest 注释。但是,当我说 @P
当使用 @EntityListeners(value = {MyEventListener.class}) 将 EntityListeners 添加到应用程序时,得到以下崩溃。它看起来是一个反射问题。
我将在我的 Controller 中使用 Spring 断路器。 @EnableCircuitBreaker @Controller @RequestMapping(value
我正在尝试使用 spring boot 开发 WebService 服务并将其发布到 ServiceMix 中,但我遇到了这样的异常: . ____ _
我正在使用 PowerMock 和 Mockito 来测试静态函数,如下所示。它过去一直运行良好,直到今天它抛出了下面提到的这个异常。 // this test case need to mock s
当我尝试将 ejd-ear、web-ear 部署到 glassfish 服务器上时。我在 Web 项目中添加了 ejb 客户端依赖项。ejb-ear 部署成功。但是当我尝试部署 web-ear 时,它
我想使用 spring boot 来启动我的应用程序,但是当我在 pom.xml 添加一些相关的 jar 后,它返回此错误:我感谢,可能是由一些冲突 jar 引起的? Application.java
我有一个简单的网络服务应用程序,我正在将其部署到 weblogic 10.3.6。我有一些项目的依赖 jar 文件。我有一个我正在使用的应用程序的 jar 文件 (oimclient.jar)。当我将
我收到 ArrayStoreException : TypeNotPresentExceptionProxy 使用 maven-failsafe-plugin 和 spring-boot 1.4 运行
在迁移到 Android Annotations v.2.7 后,我在 eclipse 中构建我的项目时遇到了问题,同时 maven build 没问题。这是来自 Eclipse 错误日志的堆栈跟踪:
我是一名优秀的程序员,十分优秀!