0

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

Lino
  • 5,084
  • 3
  • 21
  • 39

0 Answers0