将json模式验证程序添加到android测试项目时获取ExceptionInInitializerError

将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获得正确文件的人

我试图使用gradle添加到我的android测试项目中,但遇到了一些问题:

  • json模式验证器
    json模式核心
    中的文件重复阻止了我构建测试项目,所以我在
    packagingOptions
  • 运行测试时未找到文件:在运行android测试时,我在

    JsonSchemaFactory=JsonSchemaFactory.byDefault()

  • 我猜JsonLoader在测试项目中找不到/draftv4/schema

    任何一个成功地将其添加到android测试或帮助JsonLoader获得正确文件的人。 谢谢

    以下是构建脚本和异常堆栈跟踪
    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'
    }