导入库仅用于调试,不用于发布

柯西尔

OkHttp在我的应用程序中使用并添加OkHttp interceptor到打印日志。如您所见,我只想OkHttp interceptor为调试 apk导入而不是为发布。

    if (BuildConfig.DEBUG) {
        HttpLoggingInterceptor logging = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
            @Override
            public void log(String message) {
                Log.i(TAG, message);
            }
        });
        logging.setLevel(HttpLoggingInterceptor.Level.HEADERS);
        mOkHttpClient = new OkHttpClient.Builder().addInterceptor(logging).build();
    }else {
        mOkHttpClient = new OkHttpClient();
    }

debugImplementation 'com.squareup.okhttp3:logging-interceptor:3.9.1'但是,当我调用./gradlew assembleRelease它失败时,我使用了它,因为import import okhttp3.logging.HttpLoggingInterceptor;

有没有办法做到这一点?提前致谢。

编辑

仅用于调试的导入库问题对我不起作用。

马科斯·瓦斯康塞洛斯

在你的 gradle 中替换

compile 'library'

为了

compileDebug 'library'

在 Gradle 3.0 中不确定但认为它是 implementationDebug/apiDebug

但是在发布时,代码将无法编译。

如果不冲突,可能可行的解决方案是在“main/java”中创建一个接口,该接口将委派您想要的内容而不是特定于库的,然后创建一个文件夹“debug/java”并创建一个实现接口的文件库,从您的代码中调用它,而不是此调试将特定于风味调试编译。在这里编译为没有错误的发布,您可以在“release/java”中指定一个同名的类,并带有一个空实现(如果这不起作用,您将不得不使用 Class#forName 进行查找,它只能用于调试)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

导入库仅用于调试

vs2013编译用于调试但不用于发布?

如何使用 Webpack 仅用于转译而不用于捆绑

USB声卡(仅用于耳机插孔,不用于录音)

如何从Spring Integration使用File Watcher仅用于等待,而不用于移动?

设置自定义默认页面仅用于根目录(不用于子目录)

我可以将我的Telegram机器人仅用于私人聊天(不用于群组)吗?

正则表达式仅用于空格,不用于字符之间的空格?

ASP.NET Webforms-关闭缓存,但仅用于“页面”,不用于静态内容

设置控制器及其操作仅用于管理员登录,而不用于用户?

CMake INTERPROCEDURAL_OPTIMIZATION仅用于调试目标

在Java流中,peek真的仅用于调试吗?

log4j.xml配置仅用于调试

Xamarin Android:network_security_config.xml仅用于调试

仅用于发布请求的 Rails api 应用程序的 InvalidAuthenticityToken

通用角度:动态导入仅用于浏览器

用于发布和调试目标的Makefile

购物车仅用于提交订单,不用于购买,然后发送带有PDF的电子邮件

js 仅用于按钮

仅用于向上投射

DateTimePicker 仅用于当月

硒仅用于测试?

在Java流使用.peek()被视为将仅用于调试目的,将记录被视为调试?

选项“用户”用于挂载,而不用于挂载

addOnDestinationChangedListener不用于全局操作

@Primary JpaRepository不用于@Autowired

SQL 用户不用于登录

ActiveModelSerializers不用于渲染json

如何避免剥离仅用于调试构建类型的AAR中打包的本机库?