不能在xamarin中绑定jar,找不到包

时间:2015-11-02 13:51:27

标签: java c# jar xamarin

我想在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;
    }
}

1 个答案:

答案 0 :(得分:0)

问题是班级不公开。我将代码更改为:

package com.sage;

import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.io.ByteArrayInputStream;
import java.io.InputStream;

public 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;
     }

    public static boolean DoSomething()
    {
        return true;
    }
}

更改文件名以匹配类名,使用JDK6重建,这一切都有效。

请注意,用于构建库的JDK版本不应高于Xamarin使用的版本,否则可能会出现问题。