java.lang.UnsatisfiedLinkError-Couldnt-loadXX-from-loader-dalvik.system.
java.lang.UnsatisfiedLinkError: Couldn’t loadXX from loader dalvik.system.
java.lang.UnsatisfiedLinkError: Couldn’t load NDK_04 from loader dalvik.system.PathClassLoader[DexPathList[[zip file “/data/app/com.duicky-1.apk”],nativeLibraryDirectories=[/data/app-lib/com.duicky-1, /vendor/lib, /system/lib]]]: findLibrary returned null 08-13 16:25:59.829 E/AndroidRuntime( 2098): at java.lang.Runtime.loadLibrary(Runtime.java:358) 08-13 16:25:59.829 E/AndroidRuntime( 2098): at java.lang.System.loadLibrary(System.java:526) 08-13 16:25:59.829 E/AndroidRuntime( 2098): at com.duicky.MainActivity.(MainActivity.java:52) 08-13 16:25:59.829 E/AndroidRuntime( 2098): at java.lang.Class.newInstanceImpl(Native Method) 08-13 16:25:59.829 E/AndroidRuntime( 2098): at java.lang.Class.newInstance(Class.java:1208) 08-13 16:25:59.829 E/AndroidRuntime( 2098): at android.app.Instrumentation.newActivity(Instrumentation.java:1073) 08-13 16:25:59.829 E/AndroidRuntime( 2098): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2154) 08-13 16:25:59.829 E/AndroidRuntime( 2098): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2327) 08-13 16:25:59.829 E/AndroidRuntime( 2098): at android.app.ActivityThread.access$800(ActivityThread.java:151) 08-13 16:25:59.829 E/AndroidRuntime( 2098): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1225) 08-13 16:25:59.829 E/AndroidRuntime( 2098): at android.os.Handler.dispatchMessage(Handler.java:102) 08-13 16:25:59.829 E/AndroidRuntime( 2098): at android.os.Looper.loop(Looper.java:136) 08-13 16:25:59.829 E/AndroidRuntime( 2098): at android.app.ActivityThread.main(ActivityThread.java:5281) 08-13 16:25:59.829 E/AndroidRuntime( 2098): at java.lang.reflect.Method.invokeNative(Native Method) 08-13 16:25:59.829 E/AndroidRuntime( 2098): at java.lang.reflect.Method.invoke(Method.java:515) 08-13 16:25:59.829 E/AndroidRuntime( 2098): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:932) 08-13 16:25:59.829 E/AndroidRuntime( 2098): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:748) 08-13 16:25:59.829 E/AndroidRuntime( 2098): at dalvik.system.NativeStart.main(Native Method) 08-13 16:25:59.839 W/ActivityManager( 551): skipCurrentReceiverLocked app=ProcessRecord{42086b40 2098:com.duicky/u0a43} app.curReceiver=null killbyAm=false 08-13 16:25:59.839 W/ActivityManager( 551): queue:foreground mPendingBroadcast null 08-13 16:25:59.839 W/ActivityManager( 551): queue:background mPendingBroadcast null 08-13 16:25:59.839 W/ActivityManager( 551): Force finishing activity com.duicky/.MainActivity 出现这样的错误,可能你生成的so 库文件没有push 进 系统,导致apk 找不到库加载。 尝试执行 : adb push out/target/product/ndp959/system/lib/libNDK_04.so /system/lib/ 我的Android.mk文件
Copyright (C) 2008 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the “License”);
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
#
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an “AS IS” BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
This makefile shows how to build a shared library and an activity that
bundles the shared library and calls it using JNI.
TOP_LOCAL_PATH:= $(call my-dir)
Build activity
LOCAL_PATH:= $(TOP_LOCAL_PATH) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := samples LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_PACKAGE_NAME := SimpleJNI LOCAL_JNI_SHARED_LIBRARIES := libsimplejni LOCAL_PROGUARD_ENABLED := disabled LOCAL_SDK_VERSION := current include $(BUILD_PACKAGE)
============================================================
Also build all of the sub-targets under this one: the shared library.
include $(call all-makefiles-under,$(LOCAL_PATH))