生成构建时没有虚拟方法newJsonReader(Ljava / io / Reader;)问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成构建时没有虚拟方法newJsonReader(Ljava / io / Reader;)问题相关的知识,希望对你有一定的参考价值。

在许多应用中,我一直在使用retrofit2Gson转换器。但是目前我正在为现有项目做贡献而且我已经使用了两个依赖项。在直接运行项目时,它完美运行。但每当我生成debugrelease构建时,此错误出现在Toast中,并且Api内容未被解析。

Proguard被禁用。这是错误:

没有虚方法newJsonReader(Ljava / io / Reader;)Lcom / google / gson / stream / JsonReader;在课堂Lcom / google / gson / Gson;或其超级类('com.google.gson.Gson'的声明出现在/data/app/com."packagename"/base.apk:classes2.dex)

App Gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "26.0.2"
    defaultConfig {
        applicationId "com.medris.medrisemt.medrishcemt"
        minSdkVersion 22
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner 
        "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 
       'proguard-rules.pro'
    }

}
packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENSE'
}

splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
}
}

    repositories {
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(':zoomsdk')
    implementation project(':zoomcommonlib')
    implementation project(':redirectionalgorithm');

androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})

implementation 'io.jsonwebtoken:jjwt:0.9.0'
implementation 'com.squareup.okhttp:okhttp:2.7.5'
implementation 'commons-codec:commons-codec:1.9'
implementation 'com.android.support:appcompat-v7:25.4.0'
implementation 'com.android.support:design:25.4.0'
implementation 'com.android.support:support-v4:25.4.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'org.apache.httpcomponents:httpcore:4.4.1'

testImplementation 'junit:junit:4.12'

implementation 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT'
implementation 'com.squareup.okhttp3:logging-interceptor:3.4.1'
implementation 'com.squareup.okhttp3:okhttp:3.8.0'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
implementation 'com.google.code.gson:gson:2.8.0'
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
implementation 'com.google.android.gms:play-services-maps:11.8.0'
implementation 'io.nlopez.smartlocation:library:3.3.3'
implementation 'com.google.android.gms:play-services:11.8.0'
}
apply plugin: 'com.google.gms.google-services'

我搜索了相关的答案,但没有令人满意的结果。我试图降级gson和改造依赖,但没有成功。

更新

我已经将上面的gradle代码中的Gsonretrofit-convertor依赖项更新为我最初使用的那个。我错误地发布了我试过测试的降级版。

答案

试试这个,

我开始使用新版本:

compile 'com.google.code.gson:gson:2.7'
compile 'com.squareup.retrofit2:retrofit:2.2.0'
compile 'com.squareup.retrofit2:converter-gson:2.2.0'

错误消失了。

在gradle文件中添加此依赖项后,请清理并重建项目。

另一答案

在build.gradle中写这个>这些是更新的版本

compile 'com.google.code.gson:gson:2.7'
compile 'com.squareup.retrofit2:retrofit:2.2.0'
compile 'com.squareup.retrofit2:converter-gson:2.2.0'

以上是关于生成构建时没有虚拟方法newJsonReader(Ljava / io / Reader;)问题的主要内容,如果未能解决你的问题,请参考以下文章

通过 Fastlane 监控 Git 标签以自动生成构建

有没有从Eclipse自动生成ant build.xml文件的方法?

Z3在多次运行时生成不同的型号

有没有办法通过ANT或其他一些构建自动化系统自动生成JWG文件/编译Openscript文件?

生成序列化程序集

vue虚拟dom实现原理