Stetho:在控制台中看不到网络调用
Stetho: Don't see Network calls in console
Stetho 的所有功能在我的示例应用程序中都运行良好,我在完成此 YouTube tutorial(SQLite、SharedPreferences 显示)后进行了测试,除了看到我希望开始工作的网络调用。
我在加载应用程序时进行了多次 API 调用。例如,一个在我的 Service.java Class 中,如下面的 link 所示。也许它没有出现在 Stetho 中,因为 API 调用发生在 Stetho 可以打开之前加载应用程序时。如果有任何想法可以使此功能正常工作,我们将不胜感激。
我在 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'
谢谢!
我有同样的问题,缺少早期网络调用,但有一种简单的方法可以使用简单的断点查看所有调用,因为您可以连接到 'paused' 应用程序:
- 只是 运行 您的应用程序处于调试状态,并在您的第一次网络调用之前放置一个断点(例如,在您的应用程序的 onCreate 中的某处,但当然是在 Stetho 初始化之后:-)
- 打开 Chrome (chrome://inspect/#devices),你应该会看到你的 Android 应用程序(此时正在等待断点)
- 只需单击 'inspect',开发工具就会打开。
- select 网络选项卡(如果未 selected
- 点击调试中的'resume'按钮window(不是'run'按钮!)
-> 您现在应该可以看到所有(网络)呼叫(当然,如果 Stetho 已正确集成)
我只在我的设备上试过这个,不确定模拟器的行为是否相同
你的 Stetho init 是正确的,我使用了相同的构造。
要查看网络调用,您需要在您的 http 客户端中添加一个 'StethoInterceptor()'。我只是从 Android 开始,所以我无法立即告诉您如何在您的代码中执行此操作,但这是我在 Retrofit 2 (2.0.0-beta4)[=11 中插入 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();
Stetho 的所有功能在我的示例应用程序中都运行良好,我在完成此 YouTube tutorial(SQLite、SharedPreferences 显示)后进行了测试,除了看到我希望开始工作的网络调用。
我在加载应用程序时进行了多次 API 调用。例如,一个在我的 Service.java Class 中,如下面的 link 所示。也许它没有出现在 Stetho 中,因为 API 调用发生在 Stetho 可以打开之前加载应用程序时。如果有任何想法可以使此功能正常工作,我们将不胜感激。
我在 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'
谢谢!
我有同样的问题,缺少早期网络调用,但有一种简单的方法可以使用简单的断点查看所有调用,因为您可以连接到 'paused' 应用程序:
- 只是 运行 您的应用程序处于调试状态,并在您的第一次网络调用之前放置一个断点(例如,在您的应用程序的 onCreate 中的某处,但当然是在 Stetho 初始化之后:-)
- 打开 Chrome (chrome://inspect/#devices),你应该会看到你的 Android 应用程序(此时正在等待断点)
- 只需单击 'inspect',开发工具就会打开。
- select 网络选项卡(如果未 selected
- 点击调试中的'resume'按钮window(不是'run'按钮!)
-> 您现在应该可以看到所有(网络)呼叫(当然,如果 Stetho 已正确集成)
我只在我的设备上试过这个,不确定模拟器的行为是否相同
你的 Stetho init 是正确的,我使用了相同的构造。
要查看网络调用,您需要在您的 http 客户端中添加一个 'StethoInterceptor()'。我只是从 Android 开始,所以我无法立即告诉您如何在您的代码中执行此操作,但这是我在 Retrofit 2 (2.0.0-beta4)[=11 中插入 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();