Android 中小企业J&;德尔菲法10.3.3

Android 中小企业J&;德尔菲法10.3.3,android,delphi,Android,Delphi,我想在我的Delphi Android应用程序中使用smbj来访问本地网络上Linux机器上的SAMBA共享,但在尝试使用Java2OP.exe生成桥接时遇到了问题。运行: java2op.exe -jar D:\Delphi\Android\Utils\slf4j-api-1.7.9.jar -jar D:\Delphi\Android\Utils\bcprov-ext-debug-jdk15on-166.jar -jar D:\Delphi\Android\Utils\mbassador-

我想在我的Delphi Android应用程序中使用smbj来访问本地网络上Linux机器上的SAMBA共享,但在尝试使用Java2OP.exe生成桥接时遇到了问题。运行:

java2op.exe -jar D:\Delphi\Android\Utils\slf4j-api-1.7.9.jar  -jar D:\Delphi\Android\Utils\bcprov-ext-debug-jdk15on-166.jar -jar D:\Delphi\Android\Utils\mbassador-1.3.2.jar -jar D:\Delphi\Android\Utils\asn-one-0.4.0.jar  -unit Androidapi.JNI.SambaJ
产生错误:

eParsing jar: D:\Delphi\Android\Utils\bcprov-ext-debug-jdk15on-166.jar
Error: (Exception) - class or Interface expected
        > 1:1 "Warning: Binary file META-INF/versions/9/org/bouncycastle/jcajce/spec/DHDomainParameterSpec contains org.bouncycastle.jcajce.spec.DHDomainParameterSpec"
如果我这样更改订单:

java2op.exe -jar D:\Delphi\Android\Utils\slf4j-api-1.7.9.jar  -jar D:\Delphi\Android\Utils\mbassador-1.3.2.jar  -jar D:\Delphi\Android\Utils\bcprov-ext-debug-jdk15on-166.jar -jar D:\Delphi\Android\Utils\asn-one-0.4.0.jar  -unit Androidapi.JNI.SambaJ
我收到了错误信息

Parsing jar: D:\Delphi\Android\Utils\mbassador-1.3.2.jar
Error: (Exception) - Generic Type "T" not defined
        > 221:63 "  public net.engio.mbassy.bus.SyncMessageBus$SyncPostCommand(T);"
谁能告诉我我做错了什么

错误列表:

Androidapi.JNI.SambaJ.pas issues: 
com.hierynomus.asn1.types.ASN1Object: not found 
com.hierynomus.asn1.types.constructed.ASN1TaggedObject: not found 
com.hierynomus.asn1.types.primitive.ASN1ObjectIdentifier: not found 
com.hierynomus.smbj.event.SMBEventBus$1: the parent class (net.engio.mbassy.bus.error.IPublicationErrorHandler) is not found 
com.hierynomus.smbj.transport.tcp.async.AsyncDirectTcpTransport$1: the parent class (java.nio.channels.CompletionHandler) is not found
根据,您应该在
-jar
选项之后将jar指定为一个空格分隔的列表

此外,由于您只对访问SMBJ本身(而不是其依赖项)感兴趣,因此应该使用
-classes
选项指定所需的SMBJ包

尝试类似的方法(路径省略):

编辑

由于Java2OP和SMBJ似乎存在问题,您可以尝试:


您是否尝试只处理主smbj.jar文件?我认为您不需要为依赖关系建立桥梁。只需将它们添加到项目管理器中的库条目中就足够了。@Olivier:谢谢您的建议,但是“java2op.exe-jar D:\delphi\Android\Utils\smbj-0.10.0.jar-unit Androidapi.JNI.SambaJ”会生成一长串显然与依赖项有关的错误。-请发布错误(至少是摘录)。@Olivier-感谢您的关注。错误列表开始:Androidapi.JNI.SambaJ.pas问题:com.hierynoms.asn1.types.asn1对象:未找到com.hierynoms.asn1.types.constructed.ASN1TaggedObject:未找到com.hierynoms.primitive.ASN1ObjectIdentifier:未找到com.hierynoms.smbj.event.SMBEventBus$1:父类(net.engio.mbassy.bus.Error.IPublicationErrorHandler)找不到com.hierynomus.smbj.transport.tcp.async.AsyncDirectTCPTTransport$1:找不到父类(java.nio.channels.CompletionHandler)。谢谢。试用:“java2op.exe-jar D:\delphi\Android\Utils\smbj-0.10.0.jar D:\delphi\Android\Utils\slf4j-api-1.7.9.jar D:\delphi\Android\Utils\asn-one-0.4.0.jar D:\delphi\Android\Utils\bcprov-ext-debug-jdk15on-166.jar-classes com.hierynomus.smbj.*com.hierynomus.smbj.*共享-unit ajidapi.samb.*”,但是仍然得到“Error:(Exception)-泛型类型“T”未定义>221:63”public net.engio.mbassy.bus.SyncMessageBus$SyncPostCommand(T);“Message我恐怕Java2OP有问题:-(我建议你试试。它更简单,没有依赖性。@奥利维尔:谢谢你的帮助。Idera社区论坛上有一个关于JCIFS的悬而未决的问题,你添加了“类”“条目可能会解决。正是这个问题,再加上关于缺乏对最新SAMBA版本的JCIFS支持的报告(??),导致我尝试改用SMBJ。明天我将返回并再次尝试JCIFS。@他们提到了JCIFS页面上的TedB和,它们支持较新的SMB版本。您可以改用它们。
java2op -jar smbj-0.10.0.jar slf4j-api-1.7.9.jar bcprov-ext-debug-jdk15on-166.jar mbassador-1.3.2.jar asn-one-0.4.0.jar
  -classes com.hierynomus.smbj.* com.hierynomus.smbj.share.*
  -unit Androidapi.JNI.SambaJ
java2op -jar jcifs-1.3.19.jar -classes jcifs.smb.* -unit Androidapi.JNI.SambaJ