Я создаю приложение чата и хочу обнаружить чувства в отправляемых сообщениях. Мне удалось успешно извлечь текст для отправки с помощью метода getText в Android Studio.
я следил за началом работы с aws comprehend для реализации анализа настроений, и после отладки я обнаружил, что проблема возникает, когда она запускается
DetectSentimentResult detectSentimentResult = comprehendClient.detectSentiment(detectSentimentRequest);
Я правильно импортировал все зависимости, и файл манифеста содержит разрешения.
Это мой текущий код
public void detectText(String text) {
AWSCredentials credentials = new BasicAWSCredentials(KEY, SECRET);
AmazonComprehendClient comprehendClient = new AmazonComprehendClient(credentials);
// Call detectSentiment API
showToast("Calling DetectSentiment");
DetectSentimentRequest detectSentimentRequest = new DetectSentimentRequest().withText(text)
.withLanguageCode("en");
DetectSentimentResult detectSentimentResult = comprehendClient.detectSentiment(detectSentimentRequest);
System.out.println(detectSentimentResult);
//Log.d("end","End of DetectSentiment\n");
showToast("Done");
}
это похоже на код, найденный в документации по aws.
Также в документации он использует
AmazonComprehend comprehendClient =
AmazonComprehendClientBuilder.standard()
.withCredentials(awsCreds)
.withRegion("region")
.build();
amazoncomprehendclientbuilder выдает ошибки, поэтому я не смог его использовать.
В настоящее время мой код падает со следующими ошибками, пожалуйста, помогите
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.pam.tapp, PID: 30856
android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1318)
at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:86)
at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:74)
at java.net.InetAddress.getAllByName(InetAddress.java:757)
at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29)
at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:187)
at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:156)
at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:98)
at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:389)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:372)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:273)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:478)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:126)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:261)
at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getOutputStream(DelegatingHttpsURLConnection.java:218)
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java)
at com.amazonaws.http.UrlHttpClient.writeContentToConnection(UrlHttpClient.java:162)
at com.amazonaws.http.UrlHttpClient.execute(UrlHttpClient.java:75)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:371)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:212)
at com.amazonaws.services.comprehend.AmazonComprehendClient.invoke(AmazonComprehendClient.java:907)
at com.amazonaws.services.comprehend.AmazonComprehendClient.detectSentiment(AmazonComprehendClient.java:749)
at com.example.pam.tapp.ChatActivity.detectText(ChatActivity.java:353)
at com.example.pam.tapp.ChatActivity.SendMessage(ChatActivity.java:233)
at com.example.pam.tapp.ChatActivity.access$100(ChatActivity.java:89)
at com.example.pam.tapp.ChatActivity$1.onClick(ChatActivity.java:154)
at android.view.View.performClick(View.java:5773)
at android.view.View$PerformClick.run(View.java:23035)
at android.os.Handler.handleCallback(Handler.java:836)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:232)
at android.app.ActivityThread.main(ActivityThread.java:6802)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1103)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)