I want to write a activity for my android app that spell-checks words in my language (Czech). I included the .dic and .aff that I need. The app runs normally but when I try to proceed to this activity
package com.example.mainscreen
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.widget.Button
import android.widget.ImageView
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat.getSystemService
import androidx.core.content.ContextCompat.startActivity
import com.nikialeksey.hunspell.Hunspell
import com.sun.jna.Native
import com.sun.jna.NativeLibrary
class TextCheck : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_text_check)
val incorrectText = findViewById<TextView>(R.id.incorrectText)
val correctText = findViewById<TextView>(R.id.suggText)
val copyBtn = findViewById<ImageView>(R.id.copyicon)
val backBtn = findViewById<Button>(R.id.backBtn)
val resultTV = intent.getStringExtra("resultTV")
incorrectText.text = resultTV
val libPath = "MainScreen\\app\\libs\\hunspell.jar"
val hunspell = Hunspell("resources/dictionaries/cs_CZ.dic", "resources/dictionaries/cs_CZ.aff")
NativeLibrary.addSearchPath("hunspell", libPath)
val misspelledWords = mutableMapOf<String, List<String>>()
resultTV?.split(" ")?.forEach { word ->
if (hunspell.spell(word)) {
misspelledWords[word] = hunspell.suggest(word)
}
}
if (misspelledWords.isNotEmpty()) {
val correctedText = StringBuilder()
misspelledWords.forEach { (misspelled, suggestions) ->
correctedText.append("$misspelled: ${suggestions.joinToString(", ")}")
correctedText.append("\n")
}
correctText.text = correctedText.toString()
} else {
correctText.text = getString(R.string.textright)
}
copyBtn.setOnClickListener {
val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clip = ClipData.newPlainText("corrected text", correctText.text)
clipboard.setPrimaryClip(clip)
Toast.makeText(this, "Corrected text copied to clipboard", Toast.LENGTH_SHORT).show()
}
backBtn.setOnClickListener {
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
}
}
}
it returns to main page and giving me this error
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.mainscreen, PID: 28788
java.lang.UnsatisfiedLinkError: Unable to load library 'hunspell':
dlopen failed: library "libhunspell.so" not found
dlopen failed: library "libhunspell.so" not found
dlopen failed: library "libhunspell.so" not found
Native library (android-aarch64/libhunspell.so) not found in resource path (.)
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:323)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:483)
at com.sun.jna.Library$Handler.<init>(Library.java:197)
at com.sun.jna.Native.load(Native.java:622)
at com.sun.jna.Native.load(Native.java:596)
at com.nikialeksey.hunspell.Hunspell.<clinit>(Hunspell.java:20)
at com.example.mainscreen.TextCheck.onCreate(TextCheck.kt:35)
at android.app.Activity.performCreate(Activity.java:8129)
at android.app.Activity.performCreate(Activity.java:8109)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1344)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3749)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3942)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:109)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2345)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:233)
at android.os.Looper.loop(Looper.java:344)
at android.app.ActivityThread.main(ActivityThread.java:8212)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034)
Suppressed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libhunspell.so" not found
at com.sun.jna.Native.open(Native Method)
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:211)
... 22 more
Suppressed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libhunspell.so" not found
at com.sun.jna.Native.open(Native Method)
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:224)
... 22 more
Suppressed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libhunspell.so" not found
at java.lang.Runtime.loadLibrary0(Runtime.java:1077)
at java.lang.Runtime.loadLibrary0(Runtime.java:998)
at java.lang.System.loadLibrary(System.java:1661)
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:238)
... 22 more
Suppressed: java.io.IOException: Native library (android-aarch64/libhunspell.so) not found in resource path (.)
at com.sun.jna.Native.extractFromResourcePath(Native.java:1145)
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:295)
... 22 more
what am I doing wrong? I am only a beginner at developing Android apps