0

Com4j 集成在我的 Java 应用程序中运行良好,但在使用 Proguard 混淆(其他选项已关闭)时不行。我可能做错了什么?

程序挂在 C 处OM4J.createInstance(...)。我之前看到过这段代码停在同一个位置,即当 Com4j 库找不到底层的 com4j.dll 本机文件时。然而,这段代码确实在没有 Proguard 的情况下工作。

package mypackage;

public abstract class ClassFactory {
  private ClassFactory() {}

  public static MyInterface createMyComObjectInstance() {      
      return COM4J.createInstance(MyInterface.class, ComObject_idString );    
  }
}

接口是这样定义的: public interface MyInterface extends Com4jObject {....}

同上 ProGuard 配置文件(尝试了几种变体)。

-libraryjars myPath\com4j.jar

-keep public class mypackage.** {*;}

-keep public interface MyInterface {*;}

-keep public abstract class mypackage.ClassFactory {
   public static MyInterface createMyComObjectInstance();

//also tried this
    *;
}

另请注意,Proguard 在其余代码上工作得很好,包括一些 JNI/native 模块。

4

0 回答 0