Stetho:在控制台中看不到网络电话

时间:2016-02-16 22:20:32

标签: java android stetho

使用Stetho的所有内容在我通过此YouTube tutorial(SQLite,SharedPreferences节目)后测试的示例应用程序中运行良好,除了看到我喜欢的网络呼叫。

我在加载应用时进行了大量的API调用。例如,在我的Service.java类中,如下面的链接所示。也许它没有出现在Stetho中,因为在打开Stetho之前加载应用程序时会发生API调用。任何想法都会受到赞赏,以使此功能正常工作。

我在MainActivity.java中初始化Stetho。在 onCreate()我有

// 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;
    }
}

然后我还在底部包含了一个Stetho Class

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

当然我也有正确的依赖

<security-constraint>

谢谢!

1 个答案:

答案 0 :(得分:8)

我遇到了错过早期网络通话的相同问题,但是使用简单的断点可以轻松查看所有通话,因为您可以连接到暂停的网络通话。应用程序:

  • 只需在调试中运行您的应用程序并在第一次网络调用之前放置一个断点(例如,在您的应用程序的onCreate中的某个地方,但在Stetho初始化之后: - )
  • 打开Chrome(chrome:// inspect /#devices),您应该会看到您的Android应用程序(此时正在等待断点)
  • 只需点击“检查”,即可打开开发工具。
  • 如果未选择
  • ,请选择网络标签
  • 点击“恢复”&#39;调试窗口中的按钮(不是&#39;运行&#39;按钮!)

- &GT;您现在应该看到所有(网络)呼叫(如果Stetho当然是正确集成的)

  • 我只在我的设备上试过这个,不确定模拟器的行为是否相同

  • 你的Stetho init是正确的,我使用了相同的构造。

  • 要查看网络电话,您需要添加一个&#39; StethoInterceptor()&#39;进入你的http客户端。我刚开始使用Android,所以我无法立即告诉您如何在代码中执行此操作,但这里是我如何在Retrofit 2(2.0.0-beta4)中插入Stetho(1.3.1)< / p>

    // 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();