如何禁用Proguard中的方法内联? [英] How to disable method inlining in proguard?

查看:174
本文介绍了如何禁用Proguard中的方法内联?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的应用程序仅在Android 4.4上因此错误而崩溃

My app is crashing with this error on Android 4.4 only

致命异常:nTa:java.lang.IllegalAccessError:尝试从类Patient.healofy.vivoiz.com.healofy.userprofile.contactsync.ContactSyncManager访问类dUa $ a []在io.reactivex.plugins.RxJavaPlugins.onError + 367(RxJavaPlugins.java:367)在io.reactivex.internal.schedulers.ScheduledRunnable.run + 69(ScheduledRunnable.java:69)在io.reactivex.internal.schedulers.ScheduledRunnable.call + 57(ScheduledRunnable.java:57)在java.util.concurrent.FutureTask.run + 237(FutureTask.java:237)在java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 201 + 152(ScheduledThreadPoolExecutor.java:152)在java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run + 265(ScheduledThreadPoolExecutor.java:265)在java.util.concurrent.ThreadPoolExecutor.runWorker + 1112(ThreadPoolExecutor.java:1112)在java.util.concurrent.ThreadPoolExecutor $ Worker.run + 587(ThreadPoolExecutor.java:587)在java.lang.Thread.run + 841(Thread.java:841)

Fatal Exception: nTa: java.lang.IllegalAccessError: tried to access class dUa$a[] from class patient.healofy.vivoiz.com.healofy.userprofile.contactsync.ContactSyncManager at io.reactivex.plugins.RxJavaPlugins.onError + 367(RxJavaPlugins.java:367) at io.reactivex.internal.schedulers.ScheduledRunnable.run + 69(ScheduledRunnable.java:69) at io.reactivex.internal.schedulers.ScheduledRunnable.call + 57(ScheduledRunnable.java:57) at java.util.concurrent.FutureTask.run + 237(FutureTask.java:237) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201 + 152(ScheduledThreadPoolExecutor.java:152) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run + 265(ScheduledThreadPoolExecutor.java:265) at java.util.concurrent.ThreadPoolExecutor.runWorker + 1112(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run + 587(ThreadPoolExecutor.java:587) at java.lang.Thread.run + 841(Thread.java:841)

我发现这是由于ProGuard方法内联而发生的.

I found that it is happening due to ProGuard method inlining.

我要禁用这两个:

方法/内联/短内联短方法.方法/内联/唯一内联仅调用一次的方法.

method/inlining/short Inlines short methods. method/inlining/unique Inlines methods that are only called once.

我没有专门启用它们.

有关详细答案: https://medium.com/@ericluapp/a-非法访问错误发行2c29b6ea968d的旅程

推荐答案

要完全禁用方法内联,可以将其添加到配置中

In order to disable method inlining completely you can add this to your configuration

-optimizations!method/inlining/*

这篇关于如何禁用Proguard中的方法内联?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆