2016-10-15 3 views
0

Я работаю над API алхимии. Используется ссылочная ссылка Alchemy Ref.IBM Watson Alchemy API VerifyError

Мой Android код

Thread thread = new Thread(new Runnable() { 
     @Override 
     public void run() { 
      try 
      { 
       AlchemyLanguage service = new AlchemyLanguage(); 
       service.setApiKey("xxx - My API Key"); 

       Map<String,Object> param = new HashMap<String, Object>(); 
       param.put(AlchemyLanguage.TEXT, TextValue); 
       DocumentSentiment sentiment = service.getSentiment(param).execute(); 
       SentimentValue = sentiment.getText(); 
       System.out.println(sentiment); 

       SentimentType = sentiment.getSentiment().getType().name(); 
      } 
      catch (Exception ex) 
      { 
       Log.d("Exception : " , ex.toString()); 
      } 
     } 
    }); 

    thread.start(); 
    Toast.makeText(MainActivity.this, SentimentType+" ", Toast.LENGTH_SHORT).show(); 

Программа завершается во время инициализации класса

AlchemyLanguage service = new AlchemyLanguage(); 

Вход:

E/dalvikvm: Could not find class 'javax.naming.InitialContext', referenced from method com.ibm.watson.developer_cloud.util.CredentialUtils.getKeyUsingJNDI 
W/dalvikvm: VFY: unable to resolve new-instance 2848 (Ljavax/naming/InitialContext;) in Lcom/ibm/watson/developer_cloud/util/CredentialUtils; 
D/dalvikvm: VFY: replacing opcode 0x22 at 0x0007 
W/dalvikvm: VFY: unable to resolve exception class 2849 (Ljavax/naming/NamingException;) 
W/dalvikvm: VFY: unable to find exception handler at addr 0x2e 
W/dalvikvm: VFY: rejected Lcom/ibm/watson/developer_cloud/util/CredentialUtils;.getKeyUsingJNDI (Ljava/lang/String;)Ljava/lang/String; 
W/dalvikvm: VFY: rejecting opcode 0x0d at 0x002e 
W/dalvikvm: VFY: rejected Lcom/ibm/watson/developer_cloud/util/CredentialUtils;.getKeyUsingJNDI (Ljava/lang/String;)Ljava/lang/String; 
W/dalvikvm: Verifier rejected class Lcom/ibm/watson/developer_cloud/util/CredentialUtils; 
W/dalvikvm: threadid=12: thread exiting with uncaught exception (group=0x40d9e468) 
E/AndroidRuntime: FATAL EXCEPTION: Thread-754 
        java.lang.VerifyError: com/ibm/watson/developer_cloud/util/CredentialUtils 
         at com.ibm.watson.developer_cloud.service.WatsonService.<init>(WatsonService.java:102) 
         at com.ibm.watson.developer_cloud.service.AlchemyService.<init>(AlchemyService.java:55) 
         at com.ibm.watson.developer_cloud.alchemy.v1.AlchemyLanguage.<init>(AlchemyLanguage.java:54) 
         at com.numarga.alchemyinbuildtest.MainActivity$1$1.run(MainActivity.java:53) 
         at java.lang.Thread.run(Thread.java:856) 
I/Process: Sending signal. PID: 23131 SIG: 9 
Application terminated. 
+0

Этой ошибку, кажется, намекает, что ваш ключ API неправильных –

+0

я реф 'd this link [other ref] (http://www.ibm.com/watson/developercloud/doc/alchemylanguage/tutorials.shtml#curlTutorial-keywords), и я мог бы получить результаты. а также код не запускается на 'service.setApiKey (" xxx ");' @ cricket_007 – user3501749

+0

Вы заменили 'xxx' своим собственным ключом? –

ответ

0

Это было в Java SDK bug. Убедитесь, что вы используете версию> 3.5.0 в Gradle, использовать что-то вроде 3.7.1

'com.ibm.watson.developer_cloud:alchemy:3.7.1' 

Затем вызовите AlchemyLanguage анализ настроения:

AlchemyLanguage service = new AlchemyLanguage(); 
service.setApiKey("xxx - My API Key"); 

Map<String,Object> param = new HashMap<String, Object>(); 
param.put(AlchemyLanguage.TEXT, TextValue); 

DocumentSentiment sentiment = service.getSentiment(param).execute(); 
System.out.println(sentiment); 
Смежные вопросы