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/ネイティブ モジュールを含む残りのコードでも問題なく動作することにも注意してください。

4

0 に答える 0