2016-03-25 7 views
0

私がWatson Servicesを使用できるようにするこのパッケージのインポートのために、私はアンドロイドアプリケーションを実行しようとするとランタイムエラーが発生します。Javaxのコンテンツにアクセスできない

'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.javエラーが表示される場所」、これら3つの輸入は(シンボルを解決することはできません)が認識されていません。

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ファイルをインポートしようとしましたが、動作しません。クラスを見えるようにする方法はありますか?

ご協力いただければ幸いです。ありがとう!

+0

これに関連する問題があります:http://stackoverflow.com/questions/36217233/javax-content-not-accessibleは –

+0

あなたが投稿したリンクは、この議論のと同じです^^ – Dieghitus

+0

申し訳ありません。https://github.com/watson-developer-cloud/java-sdk/issues/167 –

答えて

0

2.7.1より古いバージョンを使用していると思います。私はあなたの問題を再現することができません、私はあなたを含むさまざまな構成で試しました。 作業領域をきれいにして、ライブラリの最新バージョンを入手してください。ここで

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

はあなたの問題を修正しましたcommitです。あなたのbuild.gradleあなたが持つべきで 修正は2.7.1バージョンでリリースされました。

これは私がやった、それは私のために働いていたものです:

  1. ダウンロードとAndroid Studioの
  2. オープンのAndroidメーカー
  3. をインストール:Androidの中であなたをワトソンAPIを使用する

    手順必要があります

  4. File > New > New Project
  5. 名を選択し、クリックしnextnextnext<project-name>/app/build.gradleアドオンでFinish
  6. 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. スタート:onCreate(...)アドオンの終わりにMainActiviy.java

    compile 'com.ibm.watson.developer_cloud:java-sdk:2.9.0' 
    
  8. シミュレータとコンソールを見てください。

    I/CredentialUtils: JNDI string lookups is not available. 
    

    のようなメッセージと、音声 - テキストモデルのリストが表示されます。

    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: }] 
    
+1

ありがとう、ありがとうございました。私はあなたの答えの前に答えていたはずです。 私は最近、問題がより一般的で、Watson APIにはあまり関係していないことを発見しました。 実際、Android Studioのプロジェクト構造では、SDKとJDKの場所は正しく指定されていますが、「java」と「javax」パッケージをインポートしようとすると、サブディレクトリの一部だけが表示されます。たとえば、 "import javax。" "crypto、microedition、net、security、sql、xml"のサブディレクトリだけを見てみましょう - 他のすべてのもの(ネーミング)は正しくコンパイルされていないので、 "外部ライブラリ"フォルダ。 – Dieghitus

+1

また、私はファイルのパスをbuild.gradleの依存関係としてjdkフォルダに挿入しようとしました: "コンパイルファイル( 'C:/Programmi/Java/jdk1.8.0_77/jre/lib/rt.jar')" 。これで私は最終的にjavaとjavaxのすべてのサブフォルダを見ることができましたが、デフォルトでコンパイルされた既存のライブラリrt.jarとの競合のために、アプリケーションを実行しようとすると多くの問題が発生します。だから、私はWatson Servicesと無関係のより一般的な問題を抱えています。申し訳ありませんが、初めてWatson Servicesで問題を引き起こしてしまったのですが、私はこの問題を気付きました。 – Dieghitus

関連する問題