【问题标题】:Obfuscating method with throws clause使用 throws 子句的混淆方法
【发布时间】:2010-11-10 01:45:34
【问题描述】:

我正在使用 ProGuard 来混淆我的代码。我的项目由几个模块组成,每个模块都独立混淆。

一个库包含一个接口;

public interface IFace {
    public int methodA(boolean b) throws CustomException;
}

另一个库提供了一个实现

public class IFaceImpl implements IFace {
    @Override
    public int methodA(boolean b) throws CustomException {
        return 0;
    }
}

首先构建带有接口的库,然后针对混淆版本构建第二个库。不幸的是,@Override 上的编译失败,因为接口没有 throws 子句。

我有 proguard 保留接口及其所有成员,但我不知道如何保留 throws 子句。

【问题讨论】:

    标签: java obfuscation proguard


    【解决方案1】:

    我想通了。

    -keepattributes Exceptions

    【讨论】:

    • 谢谢!没有你的回答,这简直就是浪费生命。
    • 节省大量时间。谢谢。
    • 最佳答案。拯救了这一天@Cogsy!
    【解决方案2】:

    Maven 示例:

    <plugin>
        <groupId>com.github.wvengen</groupId>
        <artifactId>proguard-maven-plugin</artifactId>
        <version>2.0.6</version>
        <dependencies>
            <dependency>
                <groupId>net.sf.proguard</groupId>
                <artifactId>proguard-base</artifactId>
                <version>4.10</version>
            </dependency>
        </dependencies>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>proguard</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <proguardVersion>4.10</proguardVersion>
            <options>
                <option>-keepattributes Exceptions</option>
                <option>-keep public class some.package.SomeClass{*;}</option>
            </options>
            <libs>
                <lib>${java.home}/lib/rt.jar</lib>
                <lib>${java.home}/lib/jce.jar</lib>
                <lib>${java.home}/lib/jsse.jar</lib>
            </libs>
        </configuration>
    </plugin>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多