2016-12-19 1 views
1

Stethoを使用するようにプロジェクトが正しく設定されています。そしてそれは以前働いていた。

しかし、私はUIの検査(要素のセクション)の私のアプリをチェックするとき、それは動作しません。リソースのような他の部分は動作します。
DevToolsは私のアプリの画面を表示しますが、Elementsセクションは空です。私はどの変更がstetho Elementsを無効にしたのか知りませんでした。

StethoとChromeの間に矛盾がありますか?もしそうなら、どのバージョンが互換性がありますか?現在、私はstehto 1.4.2とchrome v55を使用しています。
解決方法はありますか?前もって感謝します。でFacebook StethoライブラリがUIを検査するために機能しない

LoginDTO loginDTO = new LoginDTO(
      etPhno.getText().toString().trim(), 
      etPass.getText().toString().trim() 
    ); 

ApiService service = ApiClient.getApiClient().getClient().create(ApiService.class); 
Call<LoginResp> call = service.loginAPI(loginDTO); 
call.enqueue(new Callback<LoginResp>() { 

    @Override 
    public void onResponse(Call<LoginResp> call, Response<LoginResp> response) { 

     LoginResp loginResp = response.body(); 

    } 

    @Override 
    public void onFailure(Call<LoginResp> call, Throwable t) { 

     Toast.makeText(Login.this, "Error here", Toast.LENGTH_SHORT).show(); 
    } 
}); 

:改造は以下のコードを参照して使用することを今

public class ApiClient extends Application { 

    private static ApiClient apiClient = null; //singleton Object 
    String apiURL = "http://your.url/"; 


    public static ApiClient getApiClient() {//getter for object 
     if (apiClient == null) 
      apiClient = new ApiClient(); 
     return apiClient; 
    } 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     Stetho.initializeWithDefaults(this); 
    } 

    public Retrofit getClient() {//Retrofit instance 
     int myTime = 15; 
     OkHttpClient.Builder okHttpBuilder = new OkHttpClient.Builder() 
       .connectTimeout(myTime, TimeUnit.SECONDS) 
       .readTimeout(myTime, TimeUnit.SECONDS) 
       .writeTimeout(myTime, TimeUnit.SECONDS) 
       .addNetworkInterceptor(new StethoInterceptor()); 

     Retrofit.Builder builder = new Retrofit.Builder() 
       .baseUrl(apiURL) 
       .client(okHttpBuilder.build()) 
       .addConverterFactory(GsonConverterFactory.create()); 
     return builder.build(); 
    } 
} 

:以下のコードを参照してくださいStethoネットワークインターセプタインスタンスとともにレトロフィットのシングルトンデザインパターンを実現するために

答えて

0

ApiServiceインターフェイスは次のような関数を宣言します:

@POST("login") 
    Call<LoginResp> loginAPI(@Body LoginDTO loginDTO); 

のLoginDTOクラスは、このように書きます:

public class LoginDTO { 
    @SerializedName("log_phno") 
    @Expose 
    private String user; 

    @SerializedName("log_pass") 
    @Expose 
    private String pass; 

    public LoginDTO(String user, String pass) { 
     this.user = user; 
     this.pass = pass; 
    } 

    public String getUser() { 
     return user; 
    } 

    public String getPass() { 
     return pass; 
    } 
} 

は今、最も重要な部分は、ファイルをマニフェストに行くと <application>タグの下に、あなたのシングルトンのクラス名はドットが先行し、次のように置く(。):

android:name=".Controller.ApiClient" 

Stetho Interceptorの魔法を知るには、アプリを起動してGoogle Chromeを起動し、chrome://inspect/

+0

と入力してください。本当に強力で包括的なAndroid Profilerのためにstethoを使用する必要はありません – Fartab

関連する問題