将json模式验证程序添加到android测试项目时获取ExceptionInInitializerError
我试图使用gradle添加到我的android测试项目中,但遇到了一些问题:将json模式验证程序添加到android测试项目时获取ExceptionInInitializerError,android,gradle,android-testing,json-schema-validator,Android,Gradle,Android Testing,Json Schema Validator,我试图使用gradle添加到我的android测试项目中,但遇到了一些问题: json模式验证器和json模式核心中的文件重复阻止了我构建测试项目,所以我在packagingOptions 运行测试时未找到文件:在运行android测试时,我在 JsonSchemaFactory=JsonSchemaFactory.byDefault() 我猜JsonLoader在测试项目中找不到/draftv4/schema 任何一个成功地将其添加到android测试或帮助JsonLoader获得正确文件的人
json模式验证器
和json模式核心
中的文件重复阻止了我构建测试项目,所以我在packagingOptions
java.lang.ExceptionInInitializeError
位于com.github.fge.jsonschema.SchemaVersion.(SchemaVersion.java:65)
位于com.github.fge.jsonschema.SchemaVersion.(SchemaVersion.java:44)
位于com.github.fge.jsonschema.core.load.configuration.LoadingConfigurationBuilder。(LoadingConfigurationBuilder.java:117)
默认情况下,在com.github.fge.jsonschema.core.load.configuration.LoadingConfiguration.com上(LoadingConfiguration.java:151)
位于com.github.fge.jsonschema.main.JsonSchemaFactoryBuilder.(JsonSchemaFactoryBuilder.java:66)
位于com.github.fge.jsonschema.main.JsonSchemaFactory.newBuilder(JsonSchemaFactory.java:120)
默认情况下,位于com.github.fge.jsonschema.main.JsonSchemaFactory.JsonSchemaFactory(JsonSchemaFactory.java:110)
位于com.chatwing.managers.apimagerimpltest.assertRegisterValidationError(apimagerimpltest.java:115)
在com.chatwing.managers.apimagerimpltest.testRegisterChatWingWithDuplicateEmail(apimagerimpltest.java:191)上
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
位于android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
位于android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
位于android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
位于android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
位于android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)
原因:java.io.IOException:找不到资源/draftv4/schema
位于com.github.fge.jackson.JsonLoader.fromResource(JsonLoader.java:91)
位于com.github.fge.jsonschema.SchemaVersion.(SchemaVersion.java:63)
... 还有21个
我为自己的问题做了一个变通办法
缺少/draftv4/schema
的原因是我按照建议排除了它们。我原以为它会保留一个版本,但项目中似乎没有/draftv4/schema
因此,我克隆了json模式核心,并手动删除了/draftv4/schema
和/draftv3/schema
。
我还删除了主gradle构建中那些文件的排除。那么一切都好了
我仍然不能接受这个答案,因为这仍然是一个解决办法。是否有更好的方法将build.gradle中的这些文件排除在外?从gradle 0.9.1中,支持以下内容:
android.packagingOptions {
pickFirst '/draftv4/schema'
}
更多信息请访问s.您好,这里是图书馆作者;为什么不包括json模式验证器呢?依赖机制无论如何都会拉取核心,但在构建它时我遇到了复制异常。我必须克隆
json模式核心
,并删除重复的文件,构建和测试将被删除happy@CuongThai将线程的contextclassloader设置为核心的classloader(例如,`SchemaVersion.class.getClassLoader()`可能是一个较小的解决方法)。有关相关示例,请参阅。@fge有关此问题的任何消息正在解决?我的实现不允许我像OP那样解决问题。。。
java.lang.ExceptionInInitializerError
at com.github.fge.jsonschema.SchemaVersion.<init>(SchemaVersion.java:65)
at com.github.fge.jsonschema.SchemaVersion.<clinit>(SchemaVersion.java:44)
at com.github.fge.jsonschema.core.load.configuration.LoadingConfigurationBuilder.<init>(LoadingConfigurationBuilder.java:117)
at com.github.fge.jsonschema.core.load.configuration.LoadingConfiguration.byDefault(LoadingConfiguration.java:151)
at com.github.fge.jsonschema.main.JsonSchemaFactoryBuilder.<init>(JsonSchemaFactoryBuilder.java:66)
at com.github.fge.jsonschema.main.JsonSchemaFactory.newBuilder(JsonSchemaFactory.java:120)
at com.github.fge.jsonschema.main.JsonSchemaFactory.byDefault(JsonSchemaFactory.java:110)
at com.chatwing.managers.ApiManagerImplTest.assertRegisterValidationError(ApiManagerImplTest.java:115)
at com.chatwing.managers.ApiManagerImplTest.testRegisterChatWingWithDuplicateEmail(ApiManagerImplTest.java:191)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)
Caused by: java.io.IOException: resource /draftv4/schema not found
at com.github.fge.jackson.JsonLoader.fromResource(JsonLoader.java:91)
at com.github.fge.jsonschema.SchemaVersion.<init>(SchemaVersion.java:63)
... 21 more
android.packagingOptions {
pickFirst '/draftv4/schema'
}