1

根据此处的文件,我遵循了必要的步骤。然而,即使我在调试应用程序时可以看到请求的数据,但在 Flipper 上看不到网络流量。这是我的代码:

依赖项:

debugImplementation 'com.facebook.flipper:flipper:0.54.0'
debugImplementation 'com.facebook.flipper:flipper-network-plugin:0.54.0'
debugImplementation 'com.facebook.soloader:soloader:0.9.0'

应用程序设置:

class MoveeApp : Application() {

    override fun onCreate() {
        super.onCreate()
        initFlipper()
    }

    private fun initFlipper() {
        SoLoader.init(this, false)
        if (BuildConfig.DEBUG && FlipperUtils.shouldEnableFlipper(this)) {
            val flipperClient = AndroidFlipperClient.getInstance(this)
            val networkFlipperPlugin = NetworkFlipperPlugin()
            flipperClient.addPlugin(
                InspectorFlipperPlugin(
                    this@MoveeApp,
                    DescriptorMapping.withDefaults()
                )
            )
            flipperClient.addPlugin(networkFlipperPlugin)
            flipperClient.start()
        }
    }
}

我提供 OkHttpClient 的网络模块:

该文档在此处说 “由于拦截器可以修改请求和响应,因此在所有其他拦截器之后添加 Flipper 拦截器以获得网络流量的准确视图。” . 这就是我添加请求拦截器后添加网络拦截器的原因,如下所示。

@InstallIn(ApplicationComponent::class)
@Module
object NetworkModule {

    @Singleton
    @Provides
    fun provideOkHttpClient(requestInterceptor: RequestInterceptor): OkHttpClient =
        OkHttpClient.Builder()
            .addInterceptor(requestInterceptor)
            .addNetworkInterceptor(FlipperOkhttpInterceptor(NetworkFlipperPlugin()))
            .build()
}

桌面应用程序的版本也是“0.54.0”,并且启用了网络插件。

有什么我没有注意到的吗?

4

1 回答 1

1

在函数provideOkHttpClient中,代码正在创建一个NetworkFlipperPlugin未向鳍状肢客户端注册的新实例。

MoveeApp代码中还创建了一个NetworkFlipperPlugin与翻转器客户端耦合的插件,但该插件未注册为拦截器。

在 MoveeApp 中公开 Flipper 网络插件并检索它,例如:

.addNetworkInterceptor(FlipperOkhttpInterceptor(MoveeApp.flipperNetworkPlugin))
于 2020-09-20T19:41:47.460 回答