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.<clinit>(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
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# 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))




  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java.lang.UnsatisfiedLinkError: Could not load SWT library是一个常见的错误,它表示在加载SWT库时出现了问题。这个错误通常有以下几个原因: 1. 缺少SWT库:这个错误可能是由于缺少SWT库文件引起的。SWT是一个用于构建Java图形用户界面的工具包,它需要与操作系统和Java虚拟机兼容的本机库文件。如果缺少这些库文件,就会导致加载失败并出现UnsatisfiedLinkError错误。 2. 错误的SWT库版本:如果使用的SWT库版本与操作系统或Java虚拟机不兼容,也会导致加载失败并出现UnsatisfiedLinkError错误。确保使用与操作系统和Java虚拟机兼容的SWT库版本。 3. 错误的库路径:如果SWT库文件没有正确配置到Java虚拟机的库路径中,也会导致加载失败并出现UnsatisfiedLinkError错误。确保将SWT库文件正确配置到java.library.path系统属性中。 解决这个错误的方法包括: 1. 检查SWT库文件是否存在:确保SWT库文件存在于系统中,并且与操作系统和Java虚拟机兼容。 2. 检查SWT库文件的版本:确保使用与操作系统和Java虚拟机兼容的SWT库版本。 3. 配置库路径:将SWT库文件所在的路径添加到java.library.path系统属性中,以便Java虚拟机能够找到并加载它。 4. 检查依赖项:如果SWT库依赖于其他库文件,确保这些库文件也存在于系统中,并且与操作系统和Java虚拟机兼容。 5. 检查环境变量:如果SWT库依赖于环境变量,确保这些环境变量已正确设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值