【发布时间】:2015-11-02 13:51:26
【问题描述】:
我正在尝试绑定到 xamarin android 项目中的一个非常简单的 jar 文件,但我收到了警告:
JARTOXML : warning J2X9001: Couldn't load class GetCerts : java.lang.UnsupportedClassVersionError: GetCerts : Unsupported major.minor version 52.0
BINDINGSGENERATOR : warning BG8601: No packages found.
如果我将 picasso-2.5.2.jar 添加到同一个绑定项目中,它可以完美访问,就像在从 xamarin (http://developer.xamarin.com/guides/android/advanced_topics/java_integration_overview/binding-a-java-library/binding-a-jar/) 绑定 jar 的文档中一样
jar 中的代码极其简单:
package com.mgw;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
class GetCerts {
public static X509Certificate GetCert(byte[] bytes) throws Exception
{
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
InputStream in = new ByteArrayInputStream(bytes);
X509Certificate cert = (X509Certificate)certFactory.generateCertificate(in);
return cert;
}
}
【问题讨论】:
-
仅限绑定项目
-
这没有帮助。我现在尝试使用 jdk6 构建,并且错误已经改变。删除方法调用和所有导入语句,添加新方法
public static void DoSomething(){}并重新打包后,我现在收到警告warning J2X9001: Couldn't load class GetCerts : java.lang.NoClassDefFoundError: GetCerts (wrong name: com/mgw/GetCerts) -
现在已经删除了包定义,并大大简化了代码以使绑定工作,我有看起来像
class GetCerts { public static boolean DoSomething() { return true; } }并使用 jdk6 编译的 java 源代码,我现在遇到了问题 @987654327 @ 带有前面的警告warning J2X9001: Couldn't load class GetCerts : java.lang.StringIndexOutOfBoundsException: String index out of range: -1