- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我单击应用程序中的翻译按钮时,我不断收到以下异常:我已确保我的 Watson APi key 是正确的..
我仅使用 watson Translator Api 翻译数据库中的特定短语...所有数据库方法都工作正常,我只是翻译任务中似乎有错误。
E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
Process: com.example.translatorapp1, PID: 18199
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$4.done(AsyncTask.java:399)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
Caused by: java.lang.RuntimeException: Error while fetching access token from token service:
at com.ibm.cloud.sdk.core.security.TokenRequestBasedAuthenticator.getToken(TokenRequestBasedAuthenticator.java:252)
at com.ibm.cloud.sdk.core.security.TokenRequestBasedAuthenticator.authenticate(TokenRequestBasedAuthenticator.java:194)
at com.ibm.cloud.sdk.core.service.BaseService.setAuthentication(BaseService.java:260)
at com.ibm.cloud.sdk.core.service.BaseService.createCall(BaseService.java:198)
at com.ibm.cloud.sdk.core.service.BaseService.createServiceCall(BaseService.java:236)
at com.ibm.watson.language_translator.v3.LanguageTranslator.translate(LanguageTranslator.java:152)
at com.example.translatorapp1.PhraseTranslator$TranslationTask.doInBackground(PhraseTranslator.java:132)
at com.example.translatorapp1.PhraseTranslator$TranslationTask.doInBackground(PhraseTranslator.java:123)
at android.os.AsyncTask$3.call(AsyncTask.java:378)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
Caused by: java.net.SocketException: socket failed: EPERM (Operation not permitted)
at java.net.Socket.createImpl(Socket.java:492)
at java.net.Socket.getImpl(Socket.java:552)
at java.net.Socket.setSoTimeout(Socket.java:1180)
at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:244)
at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:166)
at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:257)
at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:135)
at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:254)
at okhttp3.RealCall.execute(RealCall.java:92)
at com.ibm.cloud.sdk.core.security.TokenRequestBasedAuthenticator$2.run(TokenRequestBasedAuthenticator.java:307)
at java.lang.Thread.run(Thread.java:919)
这是我的翻译类
public class PhraseTranslator extends AppCompatActivity {
private LanguageTranslator translationService;
DatabaseConn langDb;
TextView displayTrans;
Spinner languagesSpinner;
ListView phrasesLv;
Button translateBtn;
ArrayList<String> p;
ArrayList<String> spinnerLang;
ArrayAdapter<String> adapter;
ArrayAdapter<String> spinnerAdapter;
String selectedPhrase;
private String selectedTargetLanguage = "es";
//private StreamPlayer player = new StreamPlayer();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_phrase_translator);
displayTrans = findViewById(R.id.displayTransTextView);
languagesSpinner = findViewById(R.id.possibleLangspinner);
phrasesLv = findViewById(R.id.displayWordsListView);
translateBtn = findViewById(R.id.translateBtn);
//database connection.
langDb = new DatabaseConn(this);
//allow only one choice at a time
phrasesLv.setChoiceMode(CHOICE_MODE_SINGLE);
p = new ArrayList<>();
spinnerLang = new ArrayList<>();
adapter = new ArrayAdapter<String>(PhraseTranslator.this, android.R.layout.simple_list_item_single_choice, p);
spinnerAdapter = new ArrayAdapter<String>(PhraseTranslator.this, android.R.layout.simple_spinner_item, spinnerLang);
//retrives subscribed languages and adds them to array.
getSubscribedLang(spinnerLang);
translateBtn.setEnabled(false);
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//adds subscribed languages to the spinner
translationService = initLanguageTranslatorService();
langDb.display(p);
Collections.sort(p);
phrasesLv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
selectedPhrase = phrasesLv.getItemAtPosition(position).toString();
translateBtn.setEnabled(true);
}
});
phrasesLv.setAdapter(adapter);
languagesSpinner.setAdapter(spinnerAdapter);
//when translate Button is pressed
translateBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new TranslationTask().execute(selectedPhrase);
}
});
}
private LanguageTranslator initLanguageTranslatorService() {
Authenticator authenticator
= new IamAuthenticator(getString(R.string.visual_recognition_iam_apikey));
LanguageTranslator service = new LanguageTranslator("2018-05-01", authenticator);
service.setServiceUrl(getString(R.string.visual_recognition_url));
return service;
}
private class TranslationTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
TranslateOptions translateOptions = new TranslateOptions.Builder()
.addText(params[0])
.source(Language.ENGLISH)
.target(Language.SPANISH)
.build();
TranslationResult result = translationService.translate(translateOptions).execute().getResult();
String firstTranslation = result.getTranslations().get(0).getTranslation();
return firstTranslation;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
displayTrans.setText(s);
}
}
//retrives the subscribed languages from the database
public void getSubscribedLang(ArrayList<String> a){
langDb.rertrivesubscriptions(a);
}
}
这是我的布局 Activity
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".PhraseTranslator">
<ListView
android:id="@+id/displayWordsListView"
android:layout_width="406dp"
android:layout_height="424dp"
android:layout_marginStart="2dp"
android:layout_marginEnd="3dp"
android:layout_marginBottom="48dp"
app:layout_constraintBottom_toTopOf="@+id/translateBtn"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent" />
<Spinner
android:id="@+id/possibleLangspinner"
android:layout_width="313dp"
android:layout_height="33dp"
android:layout_marginStart="49dp"
android:layout_marginTop="120dp"
android:layout_marginEnd="49dp"
android:layout_marginBottom="26dp"
app:layout_constraintBottom_toTopOf="@+id/displayWordsListView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/translateBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:text="@string/translate"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/displayTransTextView"
android:layout_width="219dp"
android:layout_height="60dp"
android:layout_marginStart="96dp"
android:layout_marginTop="30dp"
android:layout_marginEnd="96dp"
android:layout_marginBottom="30dp"
android:textAlignment="center"
android:textSize="18sp"
app:layout_constraintBottom_toTopOf="@+id/possibleLangspinner"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
最佳答案
快速检查显示您引用了 Visual Recognition 来获取身份验证和服务 URL。不确定这是否是这里的问题,但 API key 和 URL 是特定于服务的,除非您在服务之间共享信息。
查看API reference中的详细信息如果您还没有这样做
关于java - 致命异常 AsyncTask #1 android Watson 翻译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60858662/
我最近发现需要某种类型的“翻译”类型,可以将特定文本字段或区域翻译成其他语言。 我希望用户何时在 **** 中写入文本html 控件和空格后的文本应转换为本地语言即印地语、阿拉伯语 芬兰语 我不确定是
我正在做一个初学者练习,创建一个 rövarspråket 翻译器。 Write a function translate() that will translate a text into “röv
class seh_exception : public std::exception { public: seh_exception(UINT se_code, PEXCEPTION_P
如果以下代码我没有得到status 200和responseText。但此 URL 有效:http://api.microsofttranslator.com/V2/Http.svc/GetLangu
我想为 Illuminate\Translate\Translator 实现一些额外的功能. 所以,我在 ~/vendor 中创建我的文件夹目录,放在那里My/Traslator类,将实现 Symfo
我经常看到(并重用)没有适当输出的第 3 方源代码。是否有任何工具(代码翻译器)可以将 println 输出转换为合适的日志框架代码 private void processCreateTrainin
我正在制作一个 Pig Latin 翻译器,将用户的输入翻译成 Pig Latin。我已经弄清楚了单词何时以元音开头以及何时不将第一个字母放在中间。然而,当涉及到辅音簇(单词中第一个元音之前的字符组)
这就是我想要的: var elite = document.getElementById("elite"), leet = document.getElementById("leet"), a
因此,我拥有将英语翻译成 Pig Latin 的程序的全部功能。我有大约 80% 的反向翻译功能。 我有两个问题: 首先,当从 Pig Latin 翻译回英语时,它会在它遇到的第一个超过 7 个字符的
VOWELS = ('a', 'e', 'i', 'o', 'u') def pigLatin(word): first_letter = word[0] if first_lette
我有一组用 jquery 编写的表单验证规则 validator插入。由于我必须在服务器端重复相同的验证,所以我认为不必在 PHP 中重写我的规则会很好。如果规则很简单 field=>rulename
gobuffalo i18n 翻译器可在操作中访问,但如何在我的模型上访问它?它需要 buffalo.Context 作为 T *i18n.Translator 中的参数。 提前致谢! 最佳答案 这是
我一直在努力翻译我的应用程序,我从我的数据库中提取翻译并将它们添加到目录中。如果我用 $translator->trans('TEST_TRANSLATION') 回显翻译,一切都在 Symfony
这是我第一次使用 i18next,我不知道如何使它工作。 (似乎 documentation 对我来说是不完整的) 这是我使用 i18next 的 HTML 代码
是否有任何简单的方法可以将 Prolog/ASP 代码转换为 CLIPS? 类似于此,但使用 CLIPS 而不是 Prover9: https://github.com/potassco/anthem
我正在寻找一个免费的 Java 翻译 API,我发现 microsoft-translator-java-api ,它非常容易使用,我喜欢这一点,但是当我从英语翻译成阿拉伯语时,如下所示: publi
如何修改此代码以翻译页面上唯一一个 ID 为 #lyrics 的容器? function googleTranslateElementInit() { new google
我需要将 PHP 源代码编译为 LLVM 位码。我试过 Raven PHP ( http://code.roadsend.com/rphp ),它能够做我想做的事,但该项目似乎已经死了。所以我想检查一
五年多来,我一直在使用此代码在 Excel VBA 宏中将用户输入的英语文本转换为法语或德语。那是在 Microsoft Azure Marketplace 上,由于我的使用量很少,所以它是免费的。
在尝试 Azure 文本翻译 API 时,我偶然发现了应用 ID 或订阅 ID 的一些问题。文档中的应用程序 ID 似乎令人困惑,它不是可以在 Azure 门户中找到的订阅 ID,而是资源 > key
我是一名优秀的程序员,十分优秀!