Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试生成证书时的NPE_Java_Android_X509certificate - Fatal编程技术网

Java 尝试生成证书时的NPE

Java 尝试生成证书时的NPE,java,android,x509certificate,Java,Android,X509certificate,尝试在android上生成X509证书时出现以下错误 java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“java.security.PublicKey java.security.cert.X509Certificate.getPublicKey()” 下面是我用来实现这一点的代码: AssetFileDescriptor assetFileDescriptor = this.getAssets().openFd("cert.c

尝试在android上生成X509证书时出现以下错误

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“java.security.PublicKey java.security.cert.X509Certificate.getPublicKey()”

下面是我用来实现这一点的代码:

            AssetFileDescriptor assetFileDescriptor = this.getAssets().openFd("cert.cer");
        FileDescriptor securityCertificate = assetFileDescriptor.getFileDescriptor();

        FileInputStream fin = new FileInputStream(securityCertificate);
        CertificateFactory cf = CertificateFactory.getInstance("X.509", "BC");
        X509Certificate certificate = (X509Certificate) cf.generateCertificate(fin);

错误似乎发生在cf.generateCertificate(fin)

通过使用InputStream而不是FileInputStream解决了这个问题,下面的代码对我来说很好:

        InputStream inputStream = assetManager.open("cert.cer");
        CertificateFactory cf = CertificateFactory.getInstance("X.509", "BC");
        X509Certificate certificate = (X509Certificate) cf.generateCertificate(inputStream);

可能是重复的否,它不是重复的,在使用FileInputStream和CertificateFactory生成X509之前,我尝试检查它们是否为null,但它们不是,方法generateCertificate()返回null,这不是我的methodIs cf!=CertificateFactory.getInstance()调用后为null?您确定参数是X.509而不是X509吗?如果
generateCertificate
返回null,为什么要获取NPE?发布您的完整异常和生成它的行。