FirestoreException-找不到TLS ALPN提供程序-没有可用的netty-tcnative

时间:2019-04-08 17:43:57

标签: google-cloud-firestore netty alpn

我有一个Java / Kotlin桌面应用程序,具有Firebase(特别是Firestore实时)连接。

它可以在我的笔记本电脑(通过Parallels的Windows)和其他经过Windows测试的笔记本电脑上正常工作。但是,在某些电脑中,我总是会收到错误消息:

com.google.cloud.firestore.FirestoreException: java.lang.IllegalStateException: Could not find TLS ALPN provider; no working netty tcnative, Conscrypt, or Jetty NPN/ALPN available

我尝试了jar的一些创作变化,但没有任何帮助。

这是我当前的build.gradle连接:

plugins {
    id 'java'
    id 'org.jetbrains.kotlin.jvm' version '1.3.21'
}

jar {
    manifest {
        attributes 'Main-Class': 'main.LoginActivity'
    }
}

// java -cp Y:\Desktop\nwebprint\out\artifacts\nwebprint_main_jar\nwebprint.main.jar main.LoginActivity

group 'nwebprint'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

version = '1.0'
sourceCompatibility = 1.7
targetCompatibility = 1.7

//create a single Jar with all dependencies
task fatJar(type: Jar) {
    manifest {
        attributes 'Implementation-Title': 'Notary Web Service',
                'Implementation-Version': version,
                'Main-Class': 'main.LoginActivity'
    }
    baseName = project.name + '-all'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    testCompile group: 'junit', name: 'junit', version: '4.12'

    compile ('com.google.firebase:firebase-admin:6.8.0') {
        exclude( group: 'com.google.guava')
    }

    compile 'com.google.guava:guava:20.0'

    // compile 'io.grpc:grpc-netty-shaded'
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

3 个答案:

答案 0 :(得分:0)

我在Firebase-Firestore中遇到了相同的问题(在Java服务器应用程序中,没有android),并且与Java版本有关。

我使用的是openjdk 8u191-jre-alpine3.9,切换到openjdk 13-ea-16-jdk-alpine3.9后已修复。

P.D:在Google上搜索时,我发现了一些有关添加grpc,netty等依赖项的条目,但它们对我不起作用。

答案 1 :(得分:0)

每个人都在说要添加库,当通过IDE运行时,我的应用程序在Netbeans中运行良好。.但是当我通过Launch4J进行编译以生成.EXE文件时,它始终抛出此异常...我正在提供自己的JRE / JDK到.EXE包装器。

我阅读并阅读..某处有人在说更新Java ...我有Java 1.8,但它来自2018年1月或类似的旧版本。.我更新了最新的Java 1.8 JDK,以提供给我.EXE包装形式的应用程序,和walla ..它有效! Firestore没有TLS例外!

希望这会有所帮助!

答案 2 :(得分:0)

Docker容器中启动 FireBase 应用程序时,我遇到了同样的问题。

在我的情况下,我必须将基本图像-从 openjdk:8-jdk-alpine 更改为 openjdk:8

来源:https://gitmemory.com/issue/grpc/grpc-java/5369/493463266