在查看了YouTube tutorial(SQLite,SharedPreferences展示)之后,我的示例应用程序中Stetho的所有功能都运行良好,除了看到我希望开始工作的网络调用外。

加载应用程序时,我正在进行许多API调用。例如,在我的Service.java类中,如下面的链接所示。也许它没有在Stetho中显示,因为在打开Stetho之前加载应用程序时会发生API调用。任何想法将不胜感激以使此功能正常工作。

我在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'

谢谢!

最佳答案

由于缺少早期网络调用,我也遇到了同样的问题,但是有一个简单的方法可以使用简单的断点查看所有调用,因为您可以连接到“已暂停”的应用程序:

  • 只是在调试中运行您的应用程序,并在您的第一个网络调用之前(例如,在应用程序的onCreate中的某个位置,但是在Stetho初始化之后当然是:-)放置一个断点
  • 打开Chrome(chrome://inspect/#devices),您应该看到自己的Android应用程序(此刻正在等待断点)
  • 只需单击“检查”,开发工具就会打开。
  • 如果未选择,请选择网络选项卡
  • 单击调试窗口中的“恢复”按钮(而不是“运行”按钮!)

  • ->您现在应该会看到所有(网络)调用(当然,如果Stetho已正确集成)
  • 我仅在设备上尝试过此操作,不确定模拟器的行为是否与
  • 相同
  • 您的Stetho初始化是正确的,我使用了相同的构造。
  • 要查看网络调用,您需要在http客户端中添加一个“StethoInterceptor()”。我只是从Android开始,所以我不能立即告诉您如何在您的代码中执行此操作,但是这是我在Retrofit 2(2.0.0-beta4)中插入Stetho(1.3.1)的方式
    // 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();
    
  • 10-08 09:10