libjpeg'e bağlı Android NDK ile oluşturduğum bir yerel kitaplığa ('işlemci') sahibim. Ancak bu sorun Android açısından alakasız olabilir. Ben başarıyla kütüphane kurdu ama kütüphaneyi çalıştırmak istediğinizde bu hata ile düzgün yüklenmemesi ettik:Sembolü bulamıyor
...
U jpeg_CreateCompress
U jpeg_CreateDecompress
U jpeg_destroy_compress
U jpeg_destroy_decompress
U jpeg_finish_compress
U jpeg_finish_decompress
U jpeg_mem_dest
U jpeg_mem_src
U jpeg_read_header
U jpeg_read_scanlines
...
işlemci: Ben gerçekten simgeleri içeren gelmez nm -D processor.so
Ancak
failed: dlopen failed: cannot locate symbol "jpeg_mem_src"
build.gradle:
: ilesources {
main {
jni {
dependencies {
project ":jpeg"
}
}
}
}
ndk {
moduleName "processor"
cppFlags.add("-fexceptions")
ldLibs.add("log")
stl "gnustl_shared"
}
java yan yüklendiğinden
Sembollerin neden var olduğu hakkında bir fikir var, ancak bulunamıyor? Teşekkürler!
Ahh, teşekkürler. Yani 'U' tanımsızlarsa, kütüphaneyi oluştururken yanlış bir şey yapmış olabilirim? (Ben System.loadLibrary ("jpeg") 'yi eklemeyi denedim, ama aynı hatayı alıyorum, bu yüzden bazı nedenlerden dolayı tüm kütüphaneleri hatalı yapıyorum.) – Anthony
libjpeg.so dosyasında: 000000000001dca0 T jpeg_mem_src – Anthony
Kitaplığınız libjpeg'e bağlıdır (build.gradle dosyasındaki bağımlılık bloğunda belirtildiği gibi). Bu, kütüphanenizin kendisinin yüklenebilmesi için yüklenecek 'libjpeg.so' dosyasına ihtiyaç duyduğu anlamına gelir. Dosyanızda bir 'readelf -d' komutunu çalıştırarak bunu kontrol edebilirsiniz, ti diğer gerekli tüm paylaşılan kütüphanelerinizi gösterecektir. Android tarafından her zaman yüklü olduğu için, libc'yi güvenle yok sayabilirsiniz, ancak diğerlerini manuel olarak yüklemelisiniz. – NiBZ