PDA

View Full Version : خطا با loadLibrary



saeed_g21
شنبه 12 اسفند 1396, 21:01 عصر
سلام دوستان

من وقتی از loadLibrary استفاده میکنم و فایل libtinyWRAP.so رو براش تعریف میکنم توی بعضی از گوشی ها خطا میده

میشه لطف کنین راهنماییم کنید ؟

چند مورد رو هم خدمتتون عرض کنم که

" پروژه مربوط به VOIP هست "

من به هر نوع CPU ی (arm - arm7 - X86) فایل APK ساختم و نصب کردم رو گوشی که خطا میده باز فرقی نکرد

فایل libtinyWRAP.so مربوطه رو در داخل هر فولدر مخصوص قراردادم

بعد از ایجاد فایل APK کنترل کردم که فایل های مربوطه نیز به فایل APK اضافه شده یا نه که دیدم اضافه میشن

در حالت دیباگ نیز برنامه رو نصب کردم که بازم خطا میده

از کتابخانه " org.doubango.ngn " استفاده شده

متن خطا نیز به پیوست اضافه شد


java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/XXX1/lib/arm/libtinyWRAP.so: has text relocations
at java.lang.Runtime.loadLibrary(Runtime.java:372)
at java.lang.System.loadLibrary(System.java:1076)
at org.doubango.ngn.NgnEngine.initialize2(NgnEngine.j ava:119)
at org.doubango.ngn.NgnEngine.<clinit>(NgnEngine.java:94)
at XXXXXXXXXXX.onReceive(CallBroadcast.java:44)
at android.app.ActivityThread.handleReceiver(Activity Thread.java:2782)
at android.app.ActivityThread.access$1800(ActivityThr ead.java:154)
at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1468)
at android.os.Handler.dispatchMessage(Handler.java:10 2)
at android.os.Looper.loop(Looper.java:234)
at android.app.ActivityThread.main(ActivityThread.jav a:5526)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:616)

saeed_g21
یک شنبه 05 فروردین 1397, 19:57 عصر
کسی نظری نداره ؟

#root#
دوشنبه 06 فروردین 1397, 08:30 صبح
خط اول رو گوگل کردید؟ توی github و stack مطرح شده، شاید راه حلش رو پیدا کنید.

saeed_g21
دوشنبه 06 فروردین 1397, 10:14 صبح
سلام
اره جستجو کردم راه حل‏‏هایی هم پیدا کردم ولی بازم جواب نداد

saeed_g21
چهارشنبه 29 فروردین 1397, 12:12 عصر
یعنی کسی با loadLibrary کار نکرده ؟:ناراحت:

farhad_shiri_ex
پنج شنبه 30 فروردین 1397, 00:00 صبح
کتابخانه ای که دارید لود میکنید text relocations داره که باعث نشت حافظه میشه اگر از sdk قبل از 23 استفاده میکنید Security Handling جلوی لودش نمیگیره ولی اگر از 23 به بعد بشه این exception رخ میده البته قاعدتا بعد از استفاده از یک متد Native کتابخانه مورد نظر این اتفاق میوفته!
حالا اینه که چرا Text relocations باعث هدر رفت حافظه میشه برای اینم خیلی چیز بدرد بخوری ندیدم.!
اگر امکان تغییر لایبرری دارید یه تست کنید!!

متاسفانه راه حلی هم نتوستم براش پیدا کنم مجبور شدم یه تغییراتی توی الگوریتم هام بدم به نظرم خود google میدونه که چه گیرهایی داره که پیشنهاد میکنه که خیلی از NDK و از کتابخانه های Native استفاده نکنید.
فقط یه سوالی که ذهن خودم خیلی درگیرش هست اینه که پس چرا توی سورس های خود اندورید انقد از متدهای Native استفاده کرده؟؟ اگه نباید زیاد ازش استفاده بشه البته چندتا مقاله راجع به NDK خوندم و نحوه استفاده از لایبررها تو جاوا ولی خیلی برام شکافته نشده.!

دوستان اطلاعاتی دارن ماروهم بی نصیب نکنن لطفا!!!