IBM Cloud Natural Language Understanding API android.os.NetworkOnMainThreadException Error

43 views Asked by At

I'm using IBM's Natural Language Understanding API to return information about tokens in the input text.

This is the code that I have in my onActivityResult to make a syntax feature request:

authenticator = IamAuthenticator("my_api_key")
naturalLanguageUnderstanding = NaturalLanguageUnderstanding("2020-08-05", authenticator)
naturalLanguageUnderstanding.serviceUrl = "my_url"
syntax = SyntaxOptions.Builder().sentences(true).build()
features = Features.Builder().syntax(syntax).build()
parameters = AnalyzeOptions.Builder().text(mainIngr[0]).features(features).build()
posResponse = naturalLanguageUnderstanding.analyze(parameters).execute().result
for (token: TokenResult in posResponse.syntax.tokens) {
    if (token.partOfSpeech == "NOUN") {
        print(token.text + ": " + token.partOfSpeech + ", ")
    }
}

I also have this code at the top of my activity for the above variables:

private lateinit var authenticator: IamAuthenticator
private lateinit var naturalLanguageUnderstanding: NaturalLanguageUnderstanding
private lateinit var syntax: SyntaxOptions
private lateinit var features: Features
private lateinit var parameters: AnalyzeOptions
private lateinit var posResponse: AnalysisResults

When I run my program, it crashes on this line: posResponse = naturalLanguageUnderstanding.analyze(parameters).execute().result

This is the error I get: android.os.NetworkOnMainThreadException

How do I fix this? The text that I need to use as input is in my onActivityResult.

0

There are 0 answers