Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android download is not working #2319

Open
ankhafizov opened this issue Feb 27, 2025 · 12 comments
Open

Android download is not working #2319

ankhafizov opened this issue Feb 27, 2025 · 12 comments

Comments

@ankhafizov
Copy link

Image

how to solve this kind of errors?

Image

Tried, but is not working (and is deprecated, btw):

 packagingOptions {
        exclude("**/*")
    }
@saudet
Copy link
Member

saudet commented Feb 27, 2025

Please try to follow the instructions here:
https://github.com/bytedeco/gradle-javacpp?tab=readme-ov-file#the-platform-plugin

@ankhafizov
Copy link
Author

Please try to follow the instructions here: https://github.com/bytedeco/gradle-javacpp?tab=readme-ov-file#the-platform-plugin

they are outdated and not sutable for graddle 8.10, kts..

@ankhafizov
Copy link
Author

Image

Image

finally solved. I think it worth to add to the readme

@ankhafizov
Copy link
Author


val javacpp by configurations.creating

tasks.register<Copy>("javacppExtract") {
    dependsOn(configurations.getByName("javacpp"))

    from(configurations.getByName("javacpp").map { zipTree(it) })
    include("lib/**")
    into("$buildDir/javacpp/")

    android.sourceSets["main"].jniLibs.srcDirs("$buildDir/javacpp/lib/")

    tasks.getByName("preBuild").dependsOn(this)
}

and

    implementation("org.bytedeco:javacv:1.5.10")
    javacpp("org.bytedeco:openblas-platform:0.3.26-1.5.10")
    javacpp("org.bytedeco:opencv-platform:4.9.0-1.5.10")

@ankhafizov
Copy link
Author

Now got

Process: com.digtp.yolo_layer_detector, PID: 7150
java.lang.UnsatisfiedLinkError: dlopen failed: library "libjniopenblas_nolapack.so" not found
	at java.lang.Runtime.loadLibrary0(Runtime.java:1081)
	at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
	at java.lang.System.loadLibrary(System.java:1765)
	at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1832)
	at org.bytedeco.javacpp.Loader.load(Loader.java:1423)
	at org.bytedeco.javacpp.Loader.load(Loader.java:1234)
	at org.bytedeco.javacpp.Loader.load(Loader.java:1210)
	at org.bytedeco.openblas.global.openblas_nolapack.<clinit>(openblas_nolapack.java:12)
	at java.lang.Class.classForName(Native Method)
	at java.lang.Class.forName(Class.java:607)
	at org.bytedeco.javacpp.Loader.load(Loader.java:1289)
	at org.bytedeco.javacpp.Loader.load(Loader.java:1234)
	at org.bytedeco.javacpp.Loader.load(Loader.java:1210)
	at org.bytedeco.opencv.opencv_core.AbstractArray.<clinit>(AbstractArray.java:18)
	at com.digtp.yolo_layer_detector.image_quality_check.QualityChecker.bitmapToMat(QualityChecker.kt:23)
	at com.digtp.yolo_layer_detector.image_quality_check.QualityChecker.checkBlackFieldsOk(QualityChecker.kt:16)
	at com.digtp.yolo_layer_detector.image_quality_check.QualityChecker.check(QualityChecker.kt:11)
	at com.digtp.yolo_layer_detector.DisplayResultActivity$onCreate$1.invokeSuspend(DisplayResultActivity.kt:43)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
	Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@fb6180f, Dispatchers.Default]
Caused by: java.lang.UnsatisfiedLinkError: Could not find jniopenblas_nolapack in class, module, and library paths.
	at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1799)
	... 20 more

when tried: val mat = Mat(height, width)

@saudet
Copy link
Member

saudet commented Feb 28, 2025

So, where is libjniopenblas_nolapack.so?

@ankhafizov
Copy link
Author

Probably, it should be installed with openblas-platform, shouldn't it?

@saudet
Copy link
Member

saudet commented Feb 28, 2025

I mean in your application. Where is it located?

@ankhafizov
Copy link
Author

Image

you mean this?

@saudet
Copy link
Member

saudet commented Feb 28, 2025

No, that's the source. Where does it end up in your application, after the build?

@ankhafizov
Copy link
Author

ankhafizov commented Feb 28, 2025

Image
I have no jniLibs folder at all, after moving to the kts gradle.

Before I had java gradle with code:

 task javacppExtract(type: Copy) {
    dependsOn configurations.javacpp

    from { configurations.javacpp.collect { zipTree(it) } }
    include "lib/**"
    into "$buildDir/javacpp/"
    android.sourceSets.main.jniLibs.srcDirs += ["$buildDir/javacpp/lib/"]

    tasks.getByName('preBuild').dependsOn javacppExtract
}

and it worked:

Image

@saudet
Copy link
Member

saudet commented Mar 1, 2025

So you know what you need to do to make it work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants