首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stetho:不要在控制台上看到网络调用

Stetho:不要在控制台上看到网络调用
EN

Stack Overflow用户
提问于 2016-02-16 22:20:31
回答 1查看 4.9K关注 0票数 9

通过这个YouTube教程 (SQLite,SharedPreferences秀),在我测试的示例应用程序中,Stetho的所有功能都很好,除了看到我想要工作的网络调用。

在加载应用程序时,我正在进行无数次API调用。例如,一个是在我的Service.java类中,如下面的链接所示。也许它没有出现在Stetho中,因为API调用发生在应用程序加载之前,Stetho才能打开。任何想法,将不胜感激,以使这一功能发挥作用。

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

代码语言:javascript
复制
    // Initialize Stetho
    Stetho.initialize(
            Stetho.newInitializerBuilder(this)
                    .enableDumpapp(new SampleDumperPluginsProvider(this))
                    .enableWebKitInspector(Stetho.defaultInspectorModulesProvider(this))
                    .build());

然后,我还在底部添加了一个Stetho

代码语言:javascript
复制
// 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;
    }
}

当然,我也有适当的依赖关系

代码语言:javascript
复制
compile 'com.facebook.stetho:stetho:1.3.0'

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-12 20:58:34

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

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

->您现在应该看到所有(网络)调用(当然,如果Stetho集成正确)

  • 我只在我的设备上尝试过这一点,不确定模拟器的行为是否相同。
  • 你的Stetho是正确的,我使用了同样的结构。
  • 要查看网络调用,您需要在您的http客户机中添加一个'StethoInterceptor()‘。我刚刚从Android开始,所以我不能立即告诉您如何在代码中执行此操作,但是下面是我如何在Retrofit 2 (2.0.0-beta4)中插入Stetho (1.3.1)的方法。 //在OkHttpClient的网络拦截器列表中添加一个Facebook StethoInterceptor OkHttpClient okClient =新的OkHttpClient.Builder() .addNetworkInterceptor(新StethoInterceptor()) .build() .build();mRetrofit = new Retrofit.Builder() .client(okClient) .baseUrl(BASE_URL) .build();
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35444136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档