【问题标题】:how to use -assumenosideeffects class android.util.Log in my app如何在我的应用程序中使用 -assumenosideeffects class android.util.Log
【发布时间】:2011-09-18 12:15:35
【问题描述】:

我在我的应用程序中写了-assumenosideeffects class android.util.Log。但是如何使用它。

-assumenosideeffects class android.util.Log 
{
    public static int d(...);
    public static int v(...);
    public static int i(...);
    public static int e(...);
}

proguard.cfg 文件中。但不工作。

【问题讨论】:

    标签: java android optimization proguard


    【解决方案1】:

    The manual-assumenosideffects“仅在优化时适用”

    ${sdk.dir}/tools/proguard/proguard-android.txt 说:“优化默认关闭。Dex 不喜欢通过 ProGuard 优化和预验证步骤运行的代码”

    http://researcharea.blogspot.com/2012/04/assumenosideeffects-not-working-in.html

    【讨论】:

      【解决方案2】:

      根据@Sean Owen 和@Yevgen Kulik 的说法。

      在 Gradle 中,使用这个:

      proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
      

      然后将以下内容添加到您的 proguard-rules.pro

      -assumenosideeffects class android.util.Log { public * ; }
      

      【讨论】:

      【解决方案3】:

      下面的工作完全正确

      -assumenosideeffects class android.util.Log {
      
      public static *** d(...);
      
      }
      

      同样你可以使用 i、v 和 e。

      【讨论】:

        【解决方案4】:

        忘记了“公共”访问修饰符?

        -assumenosideeffects public class android.util.Log
        

        【讨论】:

          【解决方案5】:

          试试-assumenosideeffects class android.util.Log { public * ; }。如果这不起作用,请发布您认为它不起作用的原因。

          【讨论】:

          • 谢谢你,我有同样的问题,知道它没有工作,因为 a) 自那次更改以来,我的标签现在正在使用中,b) 用户从一行提交了一个错误。我的 proguard 与 OPs -assumenosideeffects class android.util.Log { public static *** d(...); 略有不同公共静态 *** v(...); }
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-10-09
          • 1970-01-01
          • 2013-07-30
          • 2017-10-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多