2016-02-16 3 views
5

Все с Stetho отлично работает в моем примере приложения, которое я тестировал после прохождения этого YouTube tutorial (SQLite, SharedPreferences show), за исключением просмотра сетевых вызовов, которые я хотел бы получить.Stetho: Не видеть Сетевые вызовы в консоли

Выполнение многочисленных вызовов API при загрузке приложения. Например, в моем классе Service.java, как показано в приведенной ниже ссылке. Возможно, он не появляется в Stetho, потому что вызов API происходит, когда приложение загружается до того, как Stetho можно открыть. Любые идеи были бы оценены, чтобы заставить эту функцию работать.

Я инициализирую Stetho в своем MainActivity.java. В 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' 

Спасибо!

ответ

8

Я была такая же проблема с отсутствующими в начале сетевых вызовов, но есть простой способ увидеть все звонки с использованием простой точки останова, так как вы можете подключиться к «приостановленной» заявке:

  • просто запустите приложение отлаживать и ставить точку останова перед самым первым сетевым вызовом (т. где-то в onCreate вашего приложения, например, но после того, как Stetho инициализируется, конечно :-)
  • открыть Chrome (chrome: // inspect/# devices), и вы должны увидеть свое приложение для Android (которое ждет в точке останова на данный момент)
  • просто нажмите «осмотреть», и инструменты dev откроются.
  • выберите вкладку сети, если он не выбран
  • нажмите кнопку «Возобновить» в окне отладки

(не кнопку «Выполнить»!) -> Вы должны увидеть все ваши (сеть) вызывает сейчас (если Stetho правильно интегрирован конечно)

  • Я попробовал это только на моем устройстве, не уверен, если эмулятор ведет себя так же

  • ваш Stetho INIT совместно rrect, я использовал ту же конструкцию.

  • Чтобы увидеть сетевые вызовы, вам нужно добавить «StethoInterceptor()» в свой http-клиент. Я только начинаю с Android, так что я не могу сразу сказать вам, как это сделать в вашем коде, но вот как я вставил Stetho (1.3.1) в Модернизированный 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(); 
    
+0

Спасибо! Я использовал шаблон выше с помощью «Дооснащения» и мог видеть все сетевые запросы. –

Смежные вопросы