标签: unsatisfiedlinkerror

Mac OS X NetBeans上的sqlite4java Jar出现UnsatisfiedLinkError

我遇到了与此问题类似的问题:

在Mac OS X上使用sqlite4java Jar出现UnsatisfiedLinkError

但是,我在Mac上运行,并且我的lib文件夹中有相关的库。但是,如果按原样运行,则会收到UnsatisfiedLinkError。如果运行“ java -jar sqlite4java.jar -d”,则会得到以下输出:

sqlite4java 282
130321:222850.424 FINE [sqlite] Internal: loading library
130321:222850.425 FINE [sqlite] Internal: java.library.path=/Users/mikey/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
130321:222850.425 FINE [sqlite] Internal: sqlite4java.library.path=null
130321:222850.425 FINE [sqlite] Internal: cwd=/Users/mikey/NetBeansProjects/Test/lib/.
130321:222850.425 FINE [sqlite] Internal: default path=/Users/mikey/NetBeansProjects/Test/lib
130321:222850.425 FINE [sqlite] Internal: forced path=null 
130321:222850.426 FINE [sqlite] Internal: os.name=mac os x; os=osx
130321:222850.426 FINE [sqlite] Internal: os.arch=x86_64
130321:222850.426 FINE [sqlite] Internal: trying to load sqlite4java-osx-x86_64
130321:222850.427 FINE [sqlite] Internal: cannot load sqlite4java-osx-x86_64: java.lang.UnsatisfiedLinkError: no sqlite4java-osx-x86_64 in java.library.path
130321:222850.427 FINE …
Run Code Online (Sandbox Code Playgroud)

java sqlite macos unsatisfiedlinkerror

4
推荐指数
1
解决办法
4057
查看次数

本机方法中的UnsatisfiedLinkError

我在本机方法中得到了不满意的链接错误

Logcat主要异常

UnsatisfiedLinkError: Native method not found: rg.sqlite.database.sqlite.SQLiteConnection.nativeHasCodec:()Z
Run Code Online (Sandbox Code Playgroud)

完整的Logcat

02-04 16:29:12.807: E/AndroidRuntime(5087): FATAL EXCEPTION: main
02-04 16:29:12.807: E/AndroidRuntime(5087): java.lang.UnsatisfiedLinkError: Native method not found: org.sqlite.database.sqlite.SQLiteConnection.nativeHasCodec:()Z
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteConnection.nativeHasCodec(Native Method)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteConnection.hasCodec(SQLiteConnection.java:160)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteDatabase.hasCodec(SQLiteDatabase.java:2195)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteConnectionPool.setMaxConnectionPoolSizeLocked(SQLiteConnectionPool.java:952)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteConnectionPool.<init>(SQLiteConnectionPool.java:153)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:179)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:669)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at com.example.samplesqlitedb.SearchDataDB.getAutoSuggestion(SearchDataDB.java:33) …
Run Code Online (Sandbox Code Playgroud)

c++ java-native-interface android unsatisfiedlinkerror android-sqlite

4
推荐指数
1
解决办法
2737
查看次数

JNI的UnsatisfiedLinkError

.h文件

#include <jni.h>
#include "NativePackage_HelloWorld.h"
#include <stdio.h>

JNIEXPORT void JNICALL Java_NativePackage_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)   {
printf("Hello world!\n");
return;
}
Run Code Online (Sandbox Code Playgroud)

爪哇

package NativePackage;

public class HelloWorld {
public native void displayHelloWorld();

static {
    System.loadLibrary("hello");
}

public static void main(String[] args) {
    new HelloWorld().displayHelloWorld();
}
}
Run Code Online (Sandbox Code Playgroud)

.c文件

#include <jni.h>
#include "NativePackage_HelloWorld.h" 
#include <stdio.h>

JNIEXPORT void JNICALL Java_NativePackage_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj){
printf("Hello world!\n");
return;
}
Run Code Online (Sandbox Code Playgroud)

我已经使用编译了.c文件

gcc -I /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/include/ -I  /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/include/darwin/ -fPIC -o hello -c   HelloWorldImp.c 
Run Code Online (Sandbox Code Playgroud)

但是,尝试使用运行会java NativePackage/HelloWorld产生以下错误:

java  -Djava.library.path=NativePackage/ NativePackage/HelloWorld …
Run Code Online (Sandbox Code Playgroud)

java java-native-interface unsatisfiedlinkerror

4
推荐指数
1
解决办法
2242
查看次数

dropboxSync出错:findlibrary返回null

错误日志:

03-25 09:46:59.022: I/com.dropbox.sync.android.CoreAccountManager(2217): Prepared cache dir '/data/data/com.company.testapp/app_DropboxSyncCache/my-dropxbox-key'.
03-25 09:46:59.022: W/dalvikvm(2217): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcom/dropbox/sync/android/NativeHttp;
03-25 09:46:59.022: W/dalvikvm(2217): Exception Ljava/lang/ExceptionInInitializerError; thrown while initializing Lcom/dropbox/sync/android/NativeLib;
03-25 09:46:59.034: D/Updater(2217): java.lang.ExceptionInInitializerError
03-25 09:46:59.034: D/Updater(2217):    at com.dropbox.sync.android.CoreAccountManager.initNativeLib(CoreAccountManager.java:107)
03-25 09:46:59.034: D/Updater(2217):    at com.dropbox.sync.android.CoreAccountManager.<init>(CoreAccountManager.java:87)
03-25 09:46:59.034: D/Updater(2217):    at com.dropbox.sync.android.DbxAccountManager.getInstance(DbxAccountManager.java:112)
03-25 09:46:59.034: D/Updater(2217):    at com.dropbox.sync.android.DbxAccountManager.getInstance(DbxAccountManager.java:99)
03-25 09:46:59.034: D/Updater(2217):    at com.company.testapp.ui.LoginActivity.notificationPosted(LoginActivity.java:1100)
03-25 09:46:59.034: D/Updater(2217):    at com.company.testapp.io.NotificationCenter.postNotification(NotificationCenter.java:79)
03-25 09:46:59.034: D/Updater(2217):    at com.company.testapp.io.Updater.processFinishedOperation(Updater.java:4044)
03-25 09:46:59.034: D/Updater(2217):    at com.company.testapp.io.Updater.operationSuccess(Updater.java:3115)
03-25 09:46:59.034: D/Updater(2217):    at com.company.testapp.io.Updater.access$5(Updater.java:3046)
03-25 09:46:59.034: D/Updater(2217):    at com.company.testapp.io.Updater$1.run(Updater.java:2999) …
Run Code Online (Sandbox Code Playgroud)

android dropbox unsatisfiedlinkerror

3
推荐指数
1
解决办法
2725
查看次数

libiconv.so:有文本重定位

我的应用程序的目标是在Android 6上运行,根据我的理解,它不允许加载共享库.

有没有人遇到过这个问题并且能够成功解决它?

java.lang.UnsatisfiedLinkError:dlopen失败:/data/app/com.XXX.XXX-2/lib/arm/libiconv.so:有文本重定位

android shared-libraries unsatisfiedlinkerror android-6.0-marshmallow

3
推荐指数
1
解决办法
5524
查看次数

使用SQLCipher和Crashlytics for x86_64和arm84_v8a时,Android应用程序崩溃与UnsatisfiedLinkError

我创建了一个非常小的应用程序,只显示"Hello World".主要活动调用加载SQLCipher库.

package companydomain.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import net.sqlcipher.database.SQLiteDatabase;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        SQLiteDatabase.loadLibs(this);            // loading the SQLCipher libraries
    }
}
Run Code Online (Sandbox Code Playgroud)


build.gradle(module:app)是:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion '25.0.0'

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 25
    }
    return void
}

dependencies {
    compile 'com.android.support:appcompat-v7:25.0.1'
    compile 'net.zetetic:android-database-sqlcipher:3.5.4@aar'
}
Run Code Online (Sandbox Code Playgroud)


此应用程序按预期工作.
但是,当我将Crashlytics添加到build.gradle时:

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}

apply plugin: 'com.android.application' …
Run Code Online (Sandbox Code Playgroud)

android sqlcipher unsatisfiedlinkerror crashlytics

3
推荐指数
1
解决办法
1525
查看次数

未找到本机方法org.opencv.core.mat.n_mat-Android

我在处理Mat时遵循了所有步骤,包括在调用时将其添加到AsyncTask但仍然是相同的错误,这是找不到本机方法org.opencv.core.mat.n_mat

这是代码:

package com.example.myfirstapp;

import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import org.json.JSONException;
import org.json.JSONObject;
import org.opencv.android.BaseLoaderCallback;
import org.opencv.android.LoaderCallbackInterface;
import org.opencv.android.OpenCVLoader;
import org.opencv.android.Utils;
import org.opencv.core.Mat;

import com.example.myfirstapp.RegisterMarkerMain.ProcessImage;

import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.util.Base64;
import android.util.Log;
import android.view.ContextMenu;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter; …
Run Code Online (Sandbox Code Playgroud)

android opencv native-methods unsatisfiedlinkerror

2
推荐指数
1
解决办法
6994
查看次数

DLL LNK2019 错误(未解决的外部错误 __imp)

好吧,我基本上继承了一堆我被告知要修复的代码,因为它几个月前曾经可以工作,但现在不行。程序本身似乎充满了链接错误,我能够修复其中的一些错误。但是,我遇到了 LNK2019 未解决的外部 _ imp 错误,其中 main 中使用的某些功能未解决。由于“ _imp”,我假设这是与从 .dll 或 .lib 文件导入相关的问题。

首先,我有三个 .lib 文件,我相信它们可以正确地将它们导入到 VS2010 中,并且我已将平台配置为 64x。还有与 .lib 文件对应的 .dll 文件。包含这些错误缠身函数声明的 .h 文件包含类似

ILAPI void ILAPIENTRY ilDeleteImage(const ILuint Num);
Run Code Online (Sandbox Code Playgroud)

不幸的是,我猜测该定义是在 .dll 文件中定义的,该文件不是我自己写的,所以我不确定。但由于这是在我之前工作的代码,我相信我收到此错误是因为链接器找不到定义而不是 def/decl 不匹配的原因。

当我将鼠标悬停在 ILAPI 上时,它指出:“ILAPI __declspec(dllimport)” 我目前的猜测是程序导入了 .lib 文件,而 .lib 文件使用 .dll 文件来获取函数的定义。我相信我正在导入 .lib 文件,因为编译器不再一直告诉我它找不到特定的 .lib 文件。但是我担心它可能没有连接 .dll 文件。我有些不确定。我已经打开了 .lib 文件,并且 .lib 文件包含给出错误的函数的名称。我还使用了 Dependency walker 程序来查看我的 DLL 文件,它给了我以下一些错误:

错误:由于隐式依赖模块中缺少导出函数,至少有一个模块具有未解析的导入。

错误:找到具有不同 CPU 类型的模块。

根据其他人的评论,我觉得我可以忽略第二个错误。但我不确定第一个错误。我也不确定这是否是问题的根本原因。它可能是也可能不是。

我还使用 VS cmd 和依赖项walker 查看了 .lib 文件的内部,似乎找不到的函数的名称列在 .lib 和 .dll 之一中。

在配置方面,我在发布模式 x64 …

c++ dll unsatisfiedlinkerror

2
推荐指数
1
解决办法
9673
查看次数

Linux,java.lang.UnsatisfiedLinkError:java.library.path中没有"库文件"

我正在尝试运行一个简单的JNI示例,其中我运行一个通过动态库调用c ++函数的java应用程序.

我将发布我使用的以下代码和终端命令.

的.java

public class Lab{
   public native void hello();

   static {
      System.loadLibrary("hello");
   }

   public static void main(String args[]) {
      new Lab().hello();
   }
}
Run Code Online (Sandbox Code Playgroud)

通过终端获取.class和头文件

javac Lab.java
javah -jni Lab
Run Code Online (Sandbox Code Playgroud)

hello.cpp文件

#include "Lab.h"
#include <stdio.h>
#include <iostream>

JNIEXPORT void JNICALL Java_Lab_hello(JNIEnv *env,jobject jobj) {
   cout<<"Hello World"<<endl;
}
Run Code Online (Sandbox Code Playgroud)

生成lib文件"hello.so":

gcc -shared -fpic -o hello.so -I/usr/lib/jvm/jdk1.8.0_45/include -I/usr/lib/jvm/jdk1.8.0_45/include/linux hello.cpp
Run Code Online (Sandbox Code Playgroud)

最后运行文件:

java -Djava.library.path=. Lab
Run Code Online (Sandbox Code Playgroud)

然后我得到错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no hello in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1865)
        at java.lang.Runtime.loadLibrary0(Runtime.java:870)
        at java.lang.System.loadLibrary(System.java:1122)
        at Lab.<clinit>(Lab.java:6)
Run Code Online (Sandbox Code Playgroud)

我知道还有其他帖子有同样的问题,但不幸的是,这些解决方案都没有对我有用.我已经尝试过这样的事情: …

c++ java linux java-native-interface unsatisfiedlinkerror

2
推荐指数
1
解决办法
2884
查看次数

java.lang.UnsatisfiedLinkError:未找到实现(NDK、Kotlin)-已修复

我使用 NDK 在 C 中的文件如下,我查看了 Kotlin 中的包名称和 C 类 (NDK) 中的包名称,没有发现任何区别:

 jstring Java_com_test1_app1_ui_BaseActivity_getLocalKeyOld(JNIEnv* env, jobject obj, jstring id) {
    const char *nativeString = (*env)->GetStringUTFChars(env, id, 0);

    char* deviceIdEncode = base64encode(nativeString);
    int lenght = strlen(deviceIdEncode);

    jstring result;
    if(lenght < 16) {
        result = (*env)->NewStringUTF(env,"+-0wef2ccfeqa0-+");
    } else if(lenght > 16) {
        char subbuff[17];
        memcpy( subbuff, &deviceIdEncode[0], 16 );
        subbuff[16] = '\0';
        result = (*env)->NewStringUTF(env,subbuff);
    } else {
        result = (*env)->NewStringUTF(env,deviceIdEncode);
    }
    return result;
}


jstring Java_com_test1_app1_ui_BaseActivity_getLocalKey(JNIEnv* env, jobject obj, jstring id) { …
Run Code Online (Sandbox Code Playgroud)

string android android-ndk unsatisfiedlinkerror kotlin

2
推荐指数
1
解决办法
7456
查看次数