2017-03-04 38 views
0

我已將AndroidStudio更新至版本3.3,並使用Jackson解析JSON。在此更新之前,我的版本是2.8.0。 AndroidStudio更新後我收到下面的NoSuchMethodError:AndroidStudio更新後的Android Jackson NoSuchMethodError

E/AndroidRuntime: FATAL EXCEPTION: main 
        Process: org.madebyalex.myperiod, PID: 18261 
        java.lang.NoSuchMethodError: No virtual method 
        writeStartObject(Ljava/lang/Object;)V in class 
        Lcom/fasterxml/jackson/core/JsonGenerator; or its 
        super classes (declaration of 
        'com.fasterxml.jackson.core.JsonGenerator' appears 
         in /data/app/org.madebyalex.myperiod- 
        1/split_lib_dependencies_apk.apk:classes6.dex) 
        at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:151) 
        at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:292) 
        at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1429) 
        at com.fasterxml.jackson.databind.ObjectWriter._configAndWriteValue(ObjectWriter.java:1158) 
        at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:971) 
        at org.madebyalex.myperiod.JsonUtils.writeProfileInfo(JsonUtils.java:274) 

所以我已經更新我的傑克遜版本2.8.7,清晰的搖籃緩存文件和重建。問題仍然如此。 這是我的gradle這個文件:

dependencies { 
compile fileTree(include: ['*.jar'], dir: 'libs') 
testCompile 'junit:junit:4.12' 
    compile 'com.android.support:support-v4:25.2.0' 
    compile 'com.android.support:design:25.2.0' 
    compile 'com.android.support:appcompat-v7:25.2.0' 
    compile 'com.android.support:recyclerview-v7:25.2.0' 
    compile 'com.android.support:cardview-v7:25.2.0' 
    compile files('libs/jackson-core-2.8.7.jar') 
    compile files('libs/jackson-databind-2.8.7.jar') 
    compile files('libs/jackson-annotations-2.8.0.jar') 
} 

一件事我注意到重建和緩存刪除,傑克遜核心版本仍然在2.7.4版本中AndroidStudio的「外部庫」參考文件夾甚至後。這就是名字:jackson-core-2.7.4。

我搜索了SO上的一些鏈接,發現這個: ObjectMapper java.lang.NoSuchMethodError 但是沒有成功。

+0

我不認爲這會導致問題,但爲什麼你使用'jackson-annotations'的不匹配版本? –

+0

最新的jackson-annotations是這個版本。至少在回購。 AMD如你所說,這個os不是問題的原因。 – learner

+0

好的。我使用最新版本創建了LinkedIn:https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations/2.8.7。不幸的是傑克遜的核心回購不容納這個鏈接。問題依然存在。 – learner

回答

0

問題解決。我斷言最新版本的罐子改變我的gradle這個文件,而不是指出我的本地酒罈,AndroidStudio直接下載到Maven回購:

compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.8.7' 
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.8.7' 
compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.8.7' 

我的錯誤以前沒有見過這個。

相關問題