Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Microsoft translator API,在android中未调用Translate.execute()方法_Java_Android_Api_Microsoft Translator - Fatal编程技术网

Java Microsoft translator API,在android中未调用Translate.execute()方法

Java Microsoft translator API,在android中未调用Translate.execute()方法,java,android,api,microsoft-translator,Java,Android,Api,Microsoft Translator,我正在尝试制作一个Android应用程序,它将使用一些API进行翻译(现在我使用Microsoft API-Microsoft-translator-java-API-0.6.2-jar-with-dependencies.jar) 我已经为单个字符串做了这些,但我想翻译一些pdf文件。有人知道如何将PDF发送给此翻译器并将其翻译回来吗 public class FirstFrag extends MainNavigation.SectionFrag { private Button tran

我正在尝试制作一个Android应用程序,它将使用一些API进行翻译(现在我使用Microsoft API-Microsoft-translator-java-API-0.6.2-jar-with-dependencies.jar)

我已经为单个字符串做了这些,但我想翻译一些pdf文件。有人知道如何将PDF发送给此翻译器并将其翻译回来吗

public class FirstFrag extends MainNavigation.SectionFrag {

private Button translate;

String translatedText;

public FirstFrag(){
    super();
}
public static FirstFrag newInstance(Context c, int section){
    FirstFrag ret = new FirstFrag();
    ret.setSection(section);
    return ret;
}

@Override
public void afterCreateView(LayoutInflater inflater, ViewGroup container,
                            Bundle savedInstanceState) {

    super.afterCreateView(inflater, container, savedInstanceState);
    setContentView(R.layout.first_frag_layout);

    translate = (Button) findViewById(R.id.btnProgressBar);
    translate.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            translate.setEnabled(false);
                new TranslateFromBing().execute();

        }
    });
}

@Override
protected void onRetryClicked() {}

// Async Task Class
class TranslateFromBing extends AsyncTask<String, String, String> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }


    @Override
    protected String doInBackground(String... f_url) {

    Translate.setClientId("MY CLIENT ID");
    Translate.setClientSecret("MY CLIENT SECRET");

    translatedText = null;
    try {
        translatedText = Translate.execute("Bonjour le monde", Language.FRENCH, Language.ENGLISH);
    } catch (Exception e) {
        e.printStackTrace();
    }

        return null;
    }


    protected void onProgressUpdate(String... progress) {

    }

    @Override
    protected void onPostExecute(String file_url) {
        Toast.makeText(getActivity().getApplicationContext(), "Translation complete", Toast.LENGTH_LONG).show();

        TextView translated = (TextView) findViewById(R.id.translatedText);
        if(translatedText != null) {
            translated.setText(translatedText);
        }
        else {
            translated.setText("ERROR HERE");
        }
    }
}
public class FirstFrag扩展MainNavigation.SectionFrag{
私人按钮翻译;
字符串翻译文本;
公共图书馆{
超级();
}
公共静态FirstFrag newInstance(上下文c,int部分){
FirstFrag ret=新的FirstFrag();
第二节(第节);
返回ret;
}
@凌驾
public void afterCreateView(平面充气器、视图组容器、,
Bundle savedInstanceState){
super.afterCreateView(充气机、容器、保存状态);
setContentView(R.layout.first_frag_layout);
translate=(按钮)findViewById(R.id.btnProgressBar);
translate.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
translate.setEnabled(false);
新建TranslateFromBing().execute();
}
});
}
@凌驾
受保护的void onRetryClicked(){}
//异步任务类
类translateFroming扩展了异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
}
@凌驾
受保护的字符串doInBackground(字符串…f_url){
Translate.setClientId(“我的客户ID”);
setClientSecret(“我的客户秘密”);
translatedText=null;
试一试{
translatedText=Translate.execute(“世界日报”,Language.FRENCH,Language.ENGLISH);
}捕获(例外e){
e、 printStackTrace();
}
返回null;
}
受保护的void onProgressUpdate(字符串…进度){
}
@凌驾
受保护的void onPostExecute(字符串文件\u url){
Toast.makeText(getActivity().getApplicationContext(),“翻译完成”,Toast.LENGTH\u LONG.show();
TextView translated=(TextView)findViewById(R.id.translatedText);
if(translatedText!=null){
translated.setText(translatedText);
}
否则{
setText(“此处错误”);
}
}
}

您正在调用在UI线程上调用的
execute
内部方法。我不知道这个API,但它很可能与服务器进行通信,如果它立即返回数据,而不是通过某种回调,那么它可能正在进行HTTP通信

这在android下是不允许的,您应该在AsyncTask中调用此api


另一件事是,您应该分析logcat-它应该为您提供关于错误的额外提示。您在try/catch中调用
execute
的事实可能是因为您得到了
android.os.NetworkOnMainThreadException
您正在调用在UI线程上调用的
execute
内部方法。我不知道知道这个API,但它很可能与服务器进行通信,如果它立即返回数据,而不是通过某种回调,那么它可能正在进行HTTP通信

这在android下是不允许的,您应该在AsyncTask中调用此api

另一件事是,您应该分析logcat-它应该为您提供关于错误的其他提示。您在try/catch中调用
execute
可能是因为您得到了
android.os.NetworkOnMainThreadException