9

このYouTube チュートリアル(SQLite、SharedPreferences ショー) を実行した後にテストしたサンプル アプリでは、Stetho のすべてがうまく機能します。

アプリの読み込み時に多数の API 呼び出しを行っています。たとえば、下のリンクに示されているように、 Service.javaクラス内にあります。Stetho を開く前にアプリがロードされたときに API 呼び出しが発生するため、Stetho に表示されない可能性があります。この機能を機能させるためのアイデアをいただければ幸いです。

MainActivity.java で Stetho を初期化します。onCreate()で私は持っています

    // Initialize Stetho
    Stetho.initialize(
            Stetho.newInitializerBuilder(this)
                    .enableDumpapp(new SampleDumperPluginsProvider(this))
                    .enableWebKitInspector(Stetho.defaultInspectorModulesProvider(this))
                    .build());

次に、下部に Stethoクラスも含めました。

// Create class for Stetho
private static class SampleDumperPluginsProvider implements DumperPluginsProvider {
    private final Context mContext;

    public SampleDumperPluginsProvider(Context context){mContext = context;}

    @Override
    public Iterable<DumperPlugin> get() {
        ArrayList<DumperPlugin> plugins = new ArrayList<>();
        for (DumperPlugin defaultPlugin : Stetho.defaultDumperPluginsProvider(mContext).get()) {
            plugins.add(defaultPlugin);
        }
        //plugins.add(new SyncAdapterFragment());
        return plugins;
    }
}

もちろん、適切な依存関係もあります

compile 'com.facebook.stetho:stetho:1.3.0'

ありがとう! </p>

4

1 に答える 1

10

初期のネットワーク呼び出しが見つからないという同じ問題がありましたが、「一時停止」アプリケーションに接続できるため、単純なブレークポイントを使用してすべての呼び出しを簡単に確認する方法があります。

  • アプリケーションをデバッグで実行し、最初のネットワーク呼び出しの前にブレークポイントを配置するだけです (つまり、たとえばアプリケーションの onCreate のどこかに、もちろん Stetho が初期化された後です :-)
  • Chrome (chrome://inspect/#devices) を開くと、Android アプリケーション (現時点ではブレークポイントで待機中) が表示されます。
  • 「検査」をクリックするだけで、開発ツールが開きます。
  • ネットワークタブが選択されていない場合は選択します
  • デバッグ ウィンドウの [再開] ボタンをクリックします ([実行] ボタンではありません)。

-> すべての (ネットワーク) 通話が表示されるはずです (もちろん、Stetho が正しく統合されている場合)。

  • エミュレータが同じように動作するかどうかはわかりませんが、自分のデバイスでのみこれを試しました

  • あなたのStetho initは正しいです。私は同じ構造を使用しました。

  • ネットワーク呼び出しを表示するには、「StethoInterceptor()」を http クライアントに追加する必要があります。私は Android を使い始めたばかりなので、コードでこれを行う方法をすぐに説明することはできませんが、Stetho (1.3.1) を Retrofit 2 (2.0.0-beta4) に挿入する方法は次のとおりです。

    // add a Facebook StethoInterceptor to the OkHttpClient's list of network interceptors
    OkHttpClient okClient = new OkHttpClient.Builder()
            .addNetworkInterceptor(new StethoInterceptor())
            .build();
    
    mRetrofit = new Retrofit.Builder()
            .client(okClient)
            .baseUrl(BASE_URL)
            .build();
    
于 2016-03-12T20:58:34.887 に答える