android - 无法读取原生 JSON 数据
问题描述
我正在尝试使用 Android Studio 构建一个旧项目,但该过程失败。我得到的错误信息是这样的:
错误:无法读取本机 JSON 数据使用 JsonReader.setLenient(true) 在第 1 行第 1 列路径 $ 接受格式错误的 JSON
我相信应用程序的 build.gradle 文件对错误负责。该文件的代码是:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
applicationId "com.example.despoina.ldtest"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
ndk {
abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
}
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
arguments '-DANDROID_PLATFORM=android-13',
'-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=gnustl_static'
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
// let gradle pack the shared library into apk
jniLibs.srcDirs += ['../gen-libs/gmp']
jniLibs.srcDirs += ['../distribution/ecc/lib']
jniLibs.srcDirs += ['../distribution/smodbus/lib']
resources.includes = [ 'res/parameters.txt' ]
}
}
externalNativeBuild {
cmake {
path 'src/main/cpp/CMakeLists.txt'
}
}
}dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:25.2.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.1'
// uncomment out this one to generate lib binaries,
// and also uncommented out the one in settings.gradle
// after lib is generated, just comment them out again
//implementation project(':gen-libs')
}
任何帮助将不胜感激!!
解决方案
解决方案1:
最后我解决了与 json 宽松模式无关的问题,我的 POST 响应有问题(在 json 数据之前还有一些其他非 json 输出)。
以下是 JakeWharton 关于如何设置 Gson 宽松模式的回复:
确保你有:<code>compile 'com.google.code.gson:gson:2.6.1'
Gson gson = new GsonBuilder()
.setLenient()
.create();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.client(client)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
解决方案2:
当响应内容类型不是时也会发生此问题application/json
。在我的情况下,响应内容类型是text/html
并且我遇到了这个问题。我将其更改为application/json
然后它将起作用。
推荐阅读
- c# - 空接口有什么用?
- python - 这两个声明有何不同?
- sorting - 如何使用graphql对计算字段上的对象数组进行排序
- sql - 在 SQL 中自我加入以获取朋友的朋友
- mysql - 对于我写的以下查询,我收到“标量子查询包含多行”。有人可以纠正我吗?
- sql - 显示来自用户输入的 sql 数据
- c# - Xamarin Android - 尽管一切都已实现,但地理围栏服务无法正常工作
- constraint-programming - 如何在灵活的工作车间中编写操作的后续操作在同一台机器上完成的代码?
- postgresql - Postgres 在通过 JBOSS 运行我的应用程序时出现致命错误
- node.js - 在同一个 ubuntu 服务器上使用相同的 Nginx 为两个网站提供服务重定向到同一个网站