我有一个打开JSON文件的测试套件。测试不会传递给模拟器< = API 23,并且在较新的API级别上可以正常工作。
有两种不同的例外情况:
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 1025 $.ajsonelement
和
com.google.gson.JsonSyntaxException: java.io.EOFException: End of input at line 1 column 1025 path $.ajsonelement
。
奇怪的是,当我运行应用程序并在模拟器中手动打开它们时,这些文件正常工作。
我正在使用gson但问题也出现在Moshi身上。
答案 0 :(得分:0)
发现了这个问题。 json文件位于moduleName/src/test/resources/configs/
。我把它们移到moduleName/src/test/assets/configs/
加载它们的代码是:
val assetConfig = InstrumentationRegistry
.getInstrumentation()
.context
.assets
.open(configFileName)
val scanner = Scanner(assetConfig)
return scanner.useDelimiter("\\Z").next() Charsets.UTF_8))
我用番石榴帮手替换了它:
val assetConfig = InstrumentationRegistry
.getInstrumentation()
.context
.assets
.open(configFileName)
return CharStreams.toString(InputStreamReader(assetConfig, Charsets.UTF_8))
API 18和26之间的所有模拟器都可以正常加载。