gpt4 book ai didi

java - Stetho:在控制台中看不到网络调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:51:38 24 4
gpt4 key购买 nike

Stetho 的所有功能在我的示例应用程序中运行良好,我在完成此 YouTube tutorial 测试后进行了测试(SQLite、SharedPreferences 显示)除了看到我希望开始工作的网络调用。

我在加载应用程序时进行了大量 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 Class

// 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 init 是正确的,我使用了相同的构造。

  • 要查看网络调用,您需要将“StethoInterceptor()”添加到您的 http 客户端中。我刚开始使用 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();

关于java - Stetho:在控制台中看不到网络调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35444136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com