java.lang.IllegalArgumentException:如果无法加载本地库 [英] java.lang.IllegalArgumentException: Unable to load native library

查看:2901
本文介绍了java.lang.IllegalArgumentException:如果无法加载本地库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是纯天然NDK在我的项目(​​本机活动)。它工作正常,当我添加prebuilt静态库与我的Andr​​oid.mk文件的.so。但是,当我尝试连接prebuilt共享库,它显示了以下异常:

  03-27 16:42:09.982:E / AndroidRuntime(1275):java.lang.RuntimeException的:无法启动的活动ComponentInfo {com.irrlicht.example / android.app。 NativeActivity的}:java.lang.IllegalArgumentException:如果无法加载本地库:/data/app-lib/com.irrlicht.example-1/libHelloWorldMobile.so
 

下面是我的Andr​​oid.mk文件:

  ....

包括$(CLEAR_VARS)
LOCAL_C_INCLUDES:= /用户/ karthi /安卓/ OpenAL的软主/ JNI / OpenAL的/有
LOCAL_MODULE:=的OpenAL
LOCAL_SRC_FILES:= /Users/karthi/Android/openal-soft-master/libs/armeabi/libopenal.so
包括$(preBUILT_SHARED_LIBRARY)

包括$(CLEAR_VARS)

LOCAL_MODULE:= HelloWorldMobile

LOCAL_CFLAGS:= -D_IRR_ANDROID_PLATFORM_ -pipe -fno-异常-fno-RTTI -fstrict走样

LOCAL_C_INCLUDES:= -I ../../include -I /用户/ karthi /安卓/ OpenAL的软主/ JNI / OpenAL的/有

LOCAL_SRC_FILES:= main.cpp中android_tools.cpp game.cpp

LOCAL_LDLIBS:= -lEGL -llog -lGLESv1_CM -lGLESv2 -lz -landroid

LOCAL_SHARED_LIBRARIES:=的OpenAL

包括$(BUILD_SHARED_LIBRARY)
 

和我的Andr​​oidManifest.xml:

 <活动机器人:名称=android.app.NativeActivity
        机器人:标签=HelloWorldMobile
        机器人:launchMode =singleTask
        机器人:configChanges =方向| keyboardHidden
        机器人:screenOrientation =风景
        机器人:clearTaskOnLaunch =真正的>
        <元数据的android:NAME =android.app.lib_name机器人:值=HelloWorldMobile/>
        <意向滤光器>
                    <作用机器人:名称=android.intent.action.MAIN/>
 

终于在Application.mk:

  APP_PLATFORM:=机器人-18
APP_MODULES:= HelloWorldMobile
APP_STL:= stlport_static
 

我也试图通过更换最后一行,

  APP_STL:= stlport_shared
 

还有什么我应该做我的本地库链接prebuilt共享库?我在想什么吗?任何帮助将AP preciated。

编辑:

  11月三号至28日:57:51.469:D / dalvikvm(824):调试器分离;对象注册了1项
11月3日至28日:57:51.479:W / dalvikvm(836):PR_CAPBSET_DROP 1失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.479:W / dalvikvm(836):PR_CAPBSET_DROP 2失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.479:W / dalvikvm(836):PR_CAPBSET_DROP 3失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.479:W / dalvikvm(836):PR_CAPBSET_DROP 4失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.489:W / dalvikvm(836):PR_CAPBSET_DROP 5失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.489:W / dalvikvm(836):PR_CAPBSET_DROP 6失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.489:W / dalvikvm(836):PR_CAPBSET_DROP 7失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.489:W / dalvikvm(836):PR_CAPBSET_DROP 8失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.489:W / dalvikvm(836):PR_CAPBSET_DROP 9失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.489:W / dalvikvm(836):PR_CAPBSET_DROP 10失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.489:W / dalvikvm(836):PR_CAPBSET_DROP 11失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.489:W / dalvikvm(836):PR_CAPBSET_DROP 12失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.489:W / dalvikvm(836):PR_CAPBSET_DROP 13失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.489:W / dalvikvm(836):PR_CAPBSET_DROP 14失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.499:W / dalvikvm(836):PR_CAPBSET_DROP 15失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.499:W / dalvikvm(836):PR_CAPBSET_DROP 16失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.499:W / dalvikvm(836):PR_CAPBSET_DROP 17失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.499:W / dalvikvm(836):PR_CAPBSET_DROP 18失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.499:W / dalvikvm(836):PR_CAPBSET_DROP 19失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.499:W / dalvikvm(836):PR_CAPBSET_DROP 20失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.499:W / dalvikvm(836):PR_CAPBSET_DROP 21失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.499:W / dalvikvm(836):PR_CAPBSET_DROP 22失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.499:W / dalvikvm(836):PR_CAPBSET_DROP 23失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.509:W / dalvikvm(836):PR_CAPBSET_DROP 24失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.509:W / dalvikvm(836):PR_CAPBSET_DROP 25失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.519:W / dalvikvm(836):PR_CAPBSET_DROP 26失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.519:W / dalvikvm(836):PR_CAPBSET_DROP 27失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.519:W / dalvikvm(836):PR_CAPBSET_DROP 28失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.519:W / dalvikvm(836):PR_CAPBSET_DROP 29失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.519:W / dalvikvm(836):PR_CAPBSET_DROP 30失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.529:W / dalvikvm(836):PR_CAPBSET_DROP 31失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.529:W / dalvikvm(836):PR_CAPBSET_DROP 32失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.529:W / dalvikvm(836):PR_CAPBSET_DROP 33失败:无效的参数。请确保你的内核编译启用了文件功能的支持。
11月3日至28日:57:51.529:D / dalvikvm(836):不晚启用CheckJNI(已上)
11月3日至28日:57:51.539:I / ActivityManager(275):启动PROC com.irrlicht.example的活动com.irrlicht.example / android.app.NativeActivity:PID = 836 UID = 10061导报= {50061,1015, 1028}
11月3日至28日:57:51.929:I / ActivityManager(275):配置的变化= 1480 {1.0 310mcc260mnc EN_US ldltr sw320dp w533dp h294dp 240dpi NRML漫长陆地手指QWERTY / V / V -nav / h的第7条}
11月3日至28日:57:51.954的:I / InputReader(275):重新配置输入设备。变化= 0x00000004
11月3日至28日:57:51.954:I / InputReader(275):设备重新配置:ID = 0,名称='qwerty2,尺寸480×800,方向1,模式1,显示ID 0
11月3日至28日:57:51.969的:I / InputReader(275):重新配置输入设备。变化= 0x00000004
11月3日至28日:57:51.969:I / InputReader(275):设备重新配置:ID = 0,名称='qwerty2,尺寸480×800,方向1,模式1,显示ID 0
11月3日至28日:57:52.529:D / dalvikvm(524):GC_FOR_ALLOC释放9228K,70%免费4038K / 13380K,暂停192ms,总216ms
11月3日至28日:57:52.569:I / dalvikvm堆(524):增长堆(破片的情况下),以10.166MB为6410576字节分配
11月3日至28日:57:52.690:D / dalvikvm(524):GC_FOR_ALLOC释放11K,免费10287K / 13380K 24%,暂停118ms,总118ms
11月3日至28日:57:52.699:D / AndroidRuntime(836):关闭虚拟机
11月3日至28日:57:52.709:W / dalvikvm(836):主题ID = 1:螺纹退出与未捕获的异常(组= 0x41465700)
11月3日至28日:57:52.739:E / AndroidRuntime(836):致命异常:主要
11月3日至28日:57:52.739:E / AndroidRuntime(836):java.lang.RuntimeException的:无法启动的活动ComponentInfo {com.irrlicht.example / android.app.NativeActivity}:java.lang.IllegalArgumentException:如果无法加载本机库:/data/app-lib/com.irrlicht.example-1/libHelloWorldMobile.so
11月3日至28日:57:52.739:E / AndroidRuntime(836):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
11月3日至28日:57:52.739:E / AndroidRuntime(836):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11月3日至28日:57:52.739:E / AndroidRuntime(836):在android.app.ActivityThread.access $ 600(ActivityThread.java:141)
11月3日至28日:57:52.739:E / AndroidRuntime(836):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1256)
11月3日至28日:57:52.739:E / AndroidRuntime(836):在android.os.Handler.dispatchMessage(Handler.java:99)
11月3日至28日:57:52.739:E / AndroidRuntime(836):在android.os.Looper.loop(Looper.java:137)
11月3日至28日:57:52.739:E / AndroidRuntime(836):在android.app.ActivityThread.main(ActivityThread.java:5103)
11月3日至28日:57:52.739:E / AndroidRuntime(836):在java.lang.reflect.Method.invokeNative(本机方法)
11月3日至28日:57:52.739:E / AndroidRuntime(836):在java.lang.reflect.Method.invoke(Method.java:525)
11月3日至28日:57:52.739:E / AndroidRuntime(836):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737)
11月3日至28日:57:52.739:E / AndroidRuntime(836):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11月3日至28日:57:52.739:E / AndroidRuntime(836):在dalvik.system.NativeStart.main(本机方法)
11月3日至28日:57:52.739:E / AndroidRuntime(836):java.lang.IllegalArgumentException异常:无法加载本地库:产生的原因/data/app-lib/com.irrlicht.example-1/libHelloWorldMobile.so
11月3日至28日:57:52.739:E / AndroidRuntime(836):在android.app.NativeActivity.onCreate(NativeActivity.java:184)
11月3日至28日:57:52.739:E / AndroidRuntime(836):在android.app.Activity.performCreate(Activity.java:5133)
11月3日至28日:57:52.739:E / AndroidRuntime(836):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
11月3日至28日:57:52.739:E / AndroidRuntime(836):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
11月3日至28日:57:52.739:E / AndroidRuntime(836):11 ...更多
11月3日至28日:57:52.779:W / ActivityManager(275):强制完成活动com.irrlicht.example / android.app.NativeActivity
 

解决方案

我已经通过创建本地活动的一个子类解决了这个问题,并加载的共享库如下:

 包com.irrlicht.example;

公共类MyActivity扩展android.app.NativeActivity {

    静态{
       的System.loadLibrary(HelloWorldMobile);
       的System.loadLibrary(OpenAL的);
    }
 }
 

和在AndroidManfest.xml,我心中已经包括 MyActivity 而不是 android.app.NativeActivity 。得到<一个该解决方案href="http://stackoverflow.com/questions/8828559/loading-3rd-party-shared-libraries-from-an-android-native-activity">here 。但是,有没有办法彻底解决这个问题,而无需使用Java类?

I'm using purely native NDK in my project (Native Activity). It works fine when I add Prebuilt static libraries with my .so in Android.mk file. But when I try linking Prebuilt shared library, it shows the below exception:

03-27 16:42:09.982: E/AndroidRuntime(1275): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.irrlicht.example/android.app.NativeActivity}: java.lang.IllegalArgumentException: Unable to load native library: /data/app-lib/com.irrlicht.example-1/libHelloWorldMobile.so

Here is my Android.mk file:

....

include $(CLEAR_VARS)
LOCAL_C_INCLUDES := /Users/karthi/Android/openal-soft-master/jni/OpenAL/include
LOCAL_MODULE := openal
LOCAL_SRC_FILES := /Users/karthi/Android/openal-soft-master/libs/armeabi/libopenal.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)

LOCAL_MODULE := HelloWorldMobile

LOCAL_CFLAGS := -D_IRR_ANDROID_PLATFORM_ -pipe -fno-exceptions -fno-rtti -fstrict-aliasing

LOCAL_C_INCLUDES := -I ../../include -I /Users/karthi/Android/openal-soft-master/jni/OpenAL/include

LOCAL_SRC_FILES := main.cpp android_tools.cpp game.cpp

LOCAL_LDLIBS := -lEGL -llog -lGLESv1_CM -lGLESv2 -lz -landroid

LOCAL_SHARED_LIBRARIES := openal

include $(BUILD_SHARED_LIBRARY)

and in my AndroidManifest.xml:

<activity android:name="android.app.NativeActivity"
        android:label="HelloWorldMobile"
        android:launchMode="singleTask"
        android:configChanges="orientation|keyboardHidden"
        android:screenOrientation="landscape"
        android:clearTaskOnLaunch="true">
        <meta-data android:name="android.app.lib_name" android:value="HelloWorldMobile" />                            
        <intent-filter>
                    <action android:name="android.intent.action.MAIN" />

finally in Application.mk:

APP_PLATFORM := android-18
APP_MODULES  := HelloWorldMobile
APP_STL      := stlport_static

I have also tried replacing the last line by,

APP_STL := stlport_shared

What else should I do to link a prebuilt shared library with my native library ? What am I missing here ? Any help will be appreciated.

EDIT:

03-28 11:57:51.469: D/dalvikvm(824): Debugger has detached; object registry had 1 entries
03-28 11:57:51.479: W/dalvikvm(836): PR_CAPBSET_DROP 1 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.479: W/dalvikvm(836): PR_CAPBSET_DROP 2 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.479: W/dalvikvm(836): PR_CAPBSET_DROP 3 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.479: W/dalvikvm(836): PR_CAPBSET_DROP 4 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.489: W/dalvikvm(836): PR_CAPBSET_DROP 5 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.489: W/dalvikvm(836): PR_CAPBSET_DROP 6 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.489: W/dalvikvm(836): PR_CAPBSET_DROP 7 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.489: W/dalvikvm(836): PR_CAPBSET_DROP 8 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.489: W/dalvikvm(836): PR_CAPBSET_DROP 9 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.489: W/dalvikvm(836): PR_CAPBSET_DROP 10 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.489: W/dalvikvm(836): PR_CAPBSET_DROP 11 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.489: W/dalvikvm(836): PR_CAPBSET_DROP 12 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.489: W/dalvikvm(836): PR_CAPBSET_DROP 13 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.489: W/dalvikvm(836): PR_CAPBSET_DROP 14 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.499: W/dalvikvm(836): PR_CAPBSET_DROP 15 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.499: W/dalvikvm(836): PR_CAPBSET_DROP 16 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.499: W/dalvikvm(836): PR_CAPBSET_DROP 17 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.499: W/dalvikvm(836): PR_CAPBSET_DROP 18 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.499: W/dalvikvm(836): PR_CAPBSET_DROP 19 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.499: W/dalvikvm(836): PR_CAPBSET_DROP 20 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.499: W/dalvikvm(836): PR_CAPBSET_DROP 21 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.499: W/dalvikvm(836): PR_CAPBSET_DROP 22 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.499: W/dalvikvm(836): PR_CAPBSET_DROP 23 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.509: W/dalvikvm(836): PR_CAPBSET_DROP 24 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.509: W/dalvikvm(836): PR_CAPBSET_DROP 25 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.519: W/dalvikvm(836): PR_CAPBSET_DROP 26 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.519: W/dalvikvm(836): PR_CAPBSET_DROP 27 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.519: W/dalvikvm(836): PR_CAPBSET_DROP 28 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.519: W/dalvikvm(836): PR_CAPBSET_DROP 29 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.519: W/dalvikvm(836): PR_CAPBSET_DROP 30 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.529: W/dalvikvm(836): PR_CAPBSET_DROP 31 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.529: W/dalvikvm(836): PR_CAPBSET_DROP 32 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.529: W/dalvikvm(836): PR_CAPBSET_DROP 33 failed: Invalid argument. Please make sure your kernel is compiled with file capabilities support enabled.
03-28 11:57:51.529: D/dalvikvm(836): Not late-enabling CheckJNI (already on)
03-28 11:57:51.539: I/ActivityManager(275): Start proc com.irrlicht.example for activity com.irrlicht.example/android.app.NativeActivity: pid=836 uid=10061 gids={50061, 1015, 1028}
03-28 11:57:51.929: I/ActivityManager(275): Config changes=1480 {1.0 310mcc260mnc en_US ldltr sw320dp w533dp h294dp 240dpi nrml long land finger qwerty/v/v -nav/h s.7}
03-28 11:57:51.954: I/InputReader(275): Reconfiguring input devices.  changes=0x00000004
03-28 11:57:51.954: I/InputReader(275): Device reconfigured: id=0, name='qwerty2', size 480x800, orientation 1, mode 1, display id 0
03-28 11:57:51.969: I/InputReader(275): Reconfiguring input devices.  changes=0x00000004
03-28 11:57:51.969: I/InputReader(275): Device reconfigured: id=0, name='qwerty2', size 480x800, orientation 1, mode 1, display id 0
03-28 11:57:52.529: D/dalvikvm(524): GC_FOR_ALLOC freed 9228K, 70% free 4038K/13380K, paused 192ms, total 216ms
03-28 11:57:52.569: I/dalvikvm-heap(524): Grow heap (frag case) to 10.166MB for 6410576-byte allocation
03-28 11:57:52.690: D/dalvikvm(524): GC_FOR_ALLOC freed 11K, 24% free 10287K/13380K, paused 118ms, total 118ms
03-28 11:57:52.699: D/AndroidRuntime(836): Shutting down VM
03-28 11:57:52.709: W/dalvikvm(836): threadid=1: thread exiting with uncaught exception (group=0x41465700)
03-28 11:57:52.739: E/AndroidRuntime(836): FATAL EXCEPTION: main
03-28 11:57:52.739: E/AndroidRuntime(836): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.irrlicht.example/android.app.NativeActivity}: java.lang.IllegalArgumentException: Unable to load native library: /data/app-lib/com.irrlicht.example-1/libHelloWorldMobile.so
03-28 11:57:52.739: E/AndroidRuntime(836):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
03-28 11:57:52.739: E/AndroidRuntime(836):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
03-28 11:57:52.739: E/AndroidRuntime(836):  at android.app.ActivityThread.access$600(ActivityThread.java:141)
03-28 11:57:52.739: E/AndroidRuntime(836):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
03-28 11:57:52.739: E/AndroidRuntime(836):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-28 11:57:52.739: E/AndroidRuntime(836):  at android.os.Looper.loop(Looper.java:137)
03-28 11:57:52.739: E/AndroidRuntime(836):  at android.app.ActivityThread.main(ActivityThread.java:5103)
03-28 11:57:52.739: E/AndroidRuntime(836):  at java.lang.reflect.Method.invokeNative(Native Method)
03-28 11:57:52.739: E/AndroidRuntime(836):  at java.lang.reflect.Method.invoke(Method.java:525)
03-28 11:57:52.739: E/AndroidRuntime(836):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
03-28 11:57:52.739: E/AndroidRuntime(836):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-28 11:57:52.739: E/AndroidRuntime(836):  at dalvik.system.NativeStart.main(Native Method)
03-28 11:57:52.739: E/AndroidRuntime(836): Caused by: java.lang.IllegalArgumentException: Unable to load native library: /data/app-lib/com.irrlicht.example-1/libHelloWorldMobile.so
03-28 11:57:52.739: E/AndroidRuntime(836):  at android.app.NativeActivity.onCreate(NativeActivity.java:184)
03-28 11:57:52.739: E/AndroidRuntime(836):  at android.app.Activity.performCreate(Activity.java:5133)
03-28 11:57:52.739: E/AndroidRuntime(836):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
03-28 11:57:52.739: E/AndroidRuntime(836):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
03-28 11:57:52.739: E/AndroidRuntime(836):  ... 11 more
03-28 11:57:52.779: W/ActivityManager(275):   Force finishing activity com.irrlicht.example/android.app.NativeActivity

解决方案

I have solved this issue by creating a subclass of Native Activity and loaded the shared library as below:

package com.irrlicht.example;

public class MyActivity extends android.app.NativeActivity {

    static {
       System.loadLibrary("HelloWorldMobile");
       System.loadLibrary("openal");
    }
 }

and in AndroidManfest.xml, I'v included MyActivity instead of android.app.NativeActivity. Got this solution from here . But is there a way to completely solve this issue without using java class?

这篇关于java.lang.IllegalArgumentException:如果无法加载本地库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆