2016-05-03 5 views
1

Wenn ich Retrofit verwende. Ich habe die Ausnahme java.lang.NoClassDefFoundError: Fehlgeschlagene Auflösung von: Lokio/Buffer; Ich benutze okhttpclient, um Header für retrofit.get UserList ist eine Post-Methode, und ich muss Körper in anfordern.java.lang.NoClassDefFoundError: Fehlgeschlagene Auflösung von: Lokio/Buffer;

private void getUserList(int startIndex){ 
    final JSONObject audienceObj = ProtocolHelper.getProtocolUtils(mContext).getUserlistJsonObj(mRoomData.mUid, mRoomData.mRoomId, startIndex); 
    OkHttpClient okClient = new OkHttpClient.Builder() 
    .addInterceptor(
     new Interceptor() { 
      @Override 
      public okhttp3.Response intercept(Interceptor.Chain chain) throws IOException { 
       Request original = chain.request(); 

       // Request customization: add request headers 
       Request.Builder requestBuilder = original.newBuilder() 
         .header("sessionId", CommonData.getUserInfo(mContext).sessionId); 
       Request request = requestBuilder.build(); 
       return chain.proceed(request); 
      } 
     }) 
    .build(); 


    String baseUrl = ProtocolUtils.BASE_URL+"/"; 
    Retrofit retrofit = new Retrofit.Builder() 
    .baseUrl(baseUrl) 
    .addConverterFactory(GsonConverterFactory.create()) 
    .client(okClient) 
    .build(); 

    String audienceUrl = ProtocolHelper.getProtocolUtils(mContext).getProtocolUrl(ProtocolUtils.PROTOCOL_MSG_ID_MEMBER_LIST); 
    AudienceInterface audienceInterface = retrofit.create(AudienceInterface.class); 
    Call<String> call = audienceInterface.getAudienceList(audienceUrl,audienceObj); 
    call.enqueue(new Callback<String>() { 
     @Override 
     public void onResponse(Call<String> call, Response<String> response) { 
      Log.d(TAG, "onResponse"); 
     } 

     @Override 
     public void onFailure(Call<String> call, Throwable t) { 
      Log.d(TAG, "onFailure"+t.getMessage()); 
     } 
    }); 
} 

public interface AudienceInterface { 

@POST("{url}") 
Call<String>getAudienceList(@Path("url") String url,@Body JSONObject boder); 

}

das Protokoll t.getMessage ist: java.lang.NoClassDefFoundError: Fehler Auflösung: Lokio/Buffer;

Antwort

0

In Ordnung. ~ Ich fand diesen Fehler auch letztes Mal.
Durch diese:
NoClassDefFoundError: Failed Auflösung: Lokio/Buffer
Sie verloren lib-- Okio ein anderes Gefäß konnte.
Sie können die JAR-Datei von Github herunterladen:
https://github.com/square/okio
Und fügen Sie diese Lib zu Ihrem Projekt.

Verwandte Themen