gpt4 book ai didi

Javax 内容无法访问

转载 作者:太空宇宙 更新时间:2023-11-04 12:46:59 26 4
gpt4 key购买 nike

当我尝试运行 Android 应用程序时,由于导入了允许我使用 Watson 服务的包,因此出现运行时错误。

'com.ibm.watson.developer_cloud:java-sdk:2.9.0'

事实上,当我使用与这个包相关的东西时,出现的错误是:

E/dalvikvm: Could not find class 'javax.naming.InitialContext', referenced from method com.ibm.watson.developer_cloud.util.CredentialUtils.getKeyUsingJNDI

相应的堆栈跟踪是:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: semantic.myapplication, PID: 29120
java.lang.VerifyError: com/ibm/watson/developer_cloud/util/CredentialUtils
at….

我已经查找了这个错误的真正问题,我发现在出现错误的文件“CredentialUtils.java”中,这三个输入无法识别(无法解析符号):

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

我使用Android Studio和最新版本的jdk(1.8.0.77)。这些 java 文件存在,我可以看到它们,但由于某种原因无法访问:无法导入 javax.naming(以及其他文件夹)中的每个文件。

如何解决这个问题?我尝试导入包含 javax.naming 类的 .jar 文件,但不起作用。有没有办法让这些类可见?

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

我认为您使用的版本早于 2.7.1 。我无法重现您的问题,我尝试了不同的配置,包括您的配置。确保清理工作区并获取最新版本的库。在你的build.gradle你应该有:

compile 'com.ibm.watson.developer_cloud:java-sdk:2.9.0'

这是commit这解决了你的问题。该修复已在 2.7.1 中发布。版本。

这就是我所做的并且对我有用:

在 Android 中使用 Watson API 的步骤:

  1. 下载并安装 Android Studio
  2. 打开 Android Studio
  3. File > New > New Project .
  4. 选择一个名称并点击 next , next , nextFinish
  5. <project-name>/app/build.gradle添加:

    compile 'com.ibm.watson.developer_cloud:java-sdk:2.9.0'  
  6. MainActiviy.javaonCreate(...) 末尾添加:

    Thread thread = new Thread(new Runnable(){
    @Override
    public void run() {
    try {
    SpeechToText service = new SpeechToText();
    service.setUsernameAndPassword("<username>", "<password>");
    System.out.println(service.getModels());
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    });

    thread.start();
  7. 启动模拟器并查看控制台。您应该看到类似的消息

    I/CredentialUtils: JNDI string lookups is not available.

    以及 Speech to Text 模型列表。

    I/System.out: [{
    I/System.out: "name": "en-US_NarrowbandModel",
    I/System.out: "rate": 8000
    I/System.out: }, {
    I/System.out: "name": "pt-BR_BroadbandModel",
    I/System.out: "rate": 16000
    I/System.out: }, {
    I/System.out: .... more models here
    I/System.out: }, {
    I/System.out: "name": "en-US_BroadbandModel",
    I/System.out: "rate": 16000
    I/System.out: }]

关于Javax 内容无法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36217233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com