致命异常:AsyncTask#1:java.lang.RuntimeException:执行doInBackground()时出错

致命异常:AsyncTask#1:java.lang.RuntimeException:执行doInBackground()时出错,java,android,android-asynctask,Java,Android,Android Asynctask,我正在尝试使用Microsoft文本转换器API将一种语言翻译成另一种语言。我已经在java上开发了这个,但是当我把它移植到Android上时。它给了我这个错误。它似乎在向我指出IOUtils,但我认为我已经在项目结构中添加了该先决条件。但是有没有不使用IOUtils的方法?。像OutputStream?。似乎IOUtils是个问题,但IDK。我无法理解logcat错误:/ 我的日志在这里: E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1

我正在尝试使用Microsoft文本转换器API将一种语言翻译成另一种语言。我已经在java上开发了这个,但是当我把它移植到Android上时。它给了我这个错误。它似乎在向我指出IOUtils,但我认为我已经在项目结构中添加了该先决条件。但是有没有不使用IOUtils的方法?。像OutputStream?。似乎IOUtils是个问题,但IDK。我无法理解logcat错误:/

我的日志在这里:

E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
                  java.lang.RuntimeException: An error occured while executing doInBackground()
                      at android.os.AsyncTask$3.done(AsyncTask.java:299)
                      at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
                      at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
                      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
                      at java.util.concurrent.FutureTask.run(FutureTask.java:137)
                      at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
                      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
                      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
                      at java.lang.Thread.run(Thread.java:856)
                   Caused by: java.lang.ExceptionInInitializerError
                      at org.apache.commons.io.IOUtils.write(IOUtils.java:2049)
                      at com.example.joshu.translatorownimplementation.MainActivity.translate(MainActivity.java:101)
                      at com.example.joshu.translatorownimplementation.MainActivity$LongOperation.doInBackground(MainActivity.java:70)
                      at com.example.joshu.translatorownimplementation.MainActivity$LongOperation.doInBackground(MainActivity.java:55)
                      at android.os.AsyncTask$2.call(AsyncTask.java:287)
                      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
                      at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
                      at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
                      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
                      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
                      at java.lang.Thread.run(Thread.java:856) 
                   Caused by: java.lang.NoClassDefFoundError: java.nio.charset.StandardCharsets
                      at org.apache.commons.io.Charsets.<clinit>(Charsets.java:120)
                      at org.apache.commons.io.IOUtils.write(IOUtils.java:2049) 
                      at com.example.joshu.translatorownimplementation.MainActivity.translate(MainActivity.java:101) 
                      at com.example.joshu.translatorownimplementation.MainActivity$LongOperation.doInBackground(MainActivity.java:70) 
                      at com.example.joshu.translatorownimplementation.MainActivity$LongOperation.doInBackground(MainActivity.java:55) 
                      at android.os.AsyncTask$2.call(AsyncTask.java:287) 
                      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
                      at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
                      at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
                      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
                      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
                      at java.lang.Thread.run(Thread.java:856) 
E/AndroidRuntime:致命异常:异步任务#1
java.lang.RuntimeException:执行doInBackground()时出错
在android.os.AsyncTask$3.done(AsyncTask.java:299)
位于java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
位于java.util.concurrent.FutureTask.setException(FutureTask.java:124)
位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
位于java.util.concurrent.FutureTask.run(FutureTask.java:137)
在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
运行(Thread.java:856)
原因:java.lang.ExceptionInInitializeError
位于org.apache.commons.io.IOUtils.write(IOUtils.java:2049)
位于com.example.joshu.translatorownplementation.MainActivity.translate(MainActivity.java:101)
位于com.example.joshu.translatorownemplementation.MainActivity$LongOperation.doInBackground(MainActivity.java:70)
位于com.example.joshu.translatorownemplementation.MainActivity$LongOperation.doInBackground(MainActivity.java:55)
在android.os.AsyncTask$2.call(AsyncTask.java:287)
位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
位于java.util.concurrent.FutureTask.run(FutureTask.java:137)
在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
运行(Thread.java:856)
原因:java.lang.NoClassDefFoundError:java.nio.charset.StandardCharsets
位于org.apache.commons.io.Charsets(Charsets.java:120)
位于org.apache.commons.io.IOUtils.write(IOUtils.java:2049)
位于com.example.joshu.translatorownplementation.MainActivity.translate(MainActivity.java:101)
位于com.example.joshu.translatorownemplementation.MainActivity$LongOperation.doInBackground(MainActivity.java:70)
位于com.example.joshu.translatorownemplementation.MainActivity$LongOperation.doInBackground(MainActivity.java:55)
在android.os.AsyncTask$2.call(AsyncTask.java:287)
位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
位于java.util.concurrent.FutureTask.run(FutureTask.java:137)
在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
运行(Thread.java:856)
这是我的密码:

import org.apache.commons.io.IOUtils;

import java.io.BufferedReader;
import java.io.OutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import javax.net.ssl.HttpsURLConnection;

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class MSTranslateAPI {

   private static String output;

    private static String key = "<MS KEY for Translator API>";


  public static void main(String[] args) throws Exception {
    // TODO: Specify your translation requirements here:
    String fromLang = "en";
    String toLang = "ko";
    String text = "Hello Friend";

    MSTranslateAPI.translate(fromLang, toLang, text);

  }


  public static void translate(String fromLang, String toLang, String text) throws Exception {

     String authenticationUrl = "https://api.cognitive.microsoft.com/sts/v1.0/issueToken";
    HttpsURLConnection authConn = (HttpsURLConnection) new URL(authenticationUrl).openConnection();
    authConn.setDoOutput(true);
    authConn.setRequestMethod("POST");
    authConn.setRequestProperty("Ocp-Apim-Subscription-Key", key);
    IOUtils.write("", authConn.getOutputStream(), "UTF-8");
    String token = IOUtils.toString(authConn.getInputStream(), "UTF-8");
    authConn.disconnect();

    System.out.println("TOKEN: "+token);




    if(authConn.getResponseCode()==200) {
         String appId = URLEncoder.encode("Bearer " + token, "UTF-8");
    String text2 = URLEncoder.encode(text, "UTF-8");
    String from = fromLang;
    String to = toLang;            
    String translatorTextApiUrl ="https://api.microsofttranslator.com/v2/http.svc/GetTranslations?appid="+appId+"&text="+text2+"&from="+from+"&to="+to+"&maxTranslations=5";


    HttpsURLConnection translateConn = (HttpsURLConnection) new URL(translatorTextApiUrl).openConnection();
    translateConn.setRequestMethod("POST");         
    translateConn.setDoOutput(true);
    IOUtils.write("", translateConn.getOutputStream(), "UTF-8");
    String resp = IOUtils.toString(translateConn.getInputStream(), "UTF-8");
    translateConn.disconnect();
    System.out.println(resp+"\n\n");
    }
    else    {

    }






  }



}
import org.apache.commons.io.IOUtils;
导入java.io.BufferedReader;
导入java.io.OutputStream;
导入java.io.InputStreamReader;
导入java.net.HttpURLConnection;
导入java.net.URL;
导入java.net.urlcoder;
导入javax.net.ssl.HttpsURLConnection;
导入java.util.regex.Matcher;
导入java.util.regex.Pattern;
公共类MSTranslateAPI{
私有静态字符串输出;
私有静态字符串密钥=”;
公共静态void main(字符串[]args)引发异常{
//TODO:在此处指定您的翻译要求:
字符串fromLang=“en”;
字符串toLang=“ko”;
String text=“你好,朋友”;
MSTranslateAPI.translate(fromLang、toLang、text);
}
公共静态void translate(String fromLang、String toLang、String text)引发异常{
字符串身份验证URL=”https://api.cognitive.microsoft.com/sts/v1.0/issueToken";
HttpsURLConnection authConn=(HttpsURLConnection)新URL(authenticationUrl).openConnection();
authConn.setDoOutput(真);
authConn.setRequestMethod(“POST”);
setRequestProperty(“Ocp Apim订阅密钥”,密钥);
write(“,authConn.getOutputStream(),“UTF-8”);
字符串标记=IOUtils.toString(authConn.getInputStream(),“UTF-8”);
authConn.disconnect();
System.out.println(“令牌:+TOKEN”);
如果(authConn.getResponseCode()==200){
字符串appId=URLEncoder.encode(“载体”+令牌,“UTF-8”);
字符串text2=URLEncoder.encode(文本,“UTF-8”);
字符串from=fromLang;
字符串to=toLang;
字符串translatorTextApiUrl=”https://api.microsofttranslator.com/v2/http.svc/GetTranslations?appid=“+appId+”&text=“+text2+”&from=“+from+”&to=“+to+”&maxTranslations=5”;
HttpsURLConnection translateConn=(HttpsURLConnection)新URL(translaterExtapiURL).openConnection();
translatecon.setRequestMethod(“POST”);
translatecon.setDoOutput(真);
write(“,translatecon.getOutputStream(),“UTF-8”);
字符串resp=IOUtil