GVKun编程网logo

UnsatisfiedLinkError:/tmp/snappy-1.1.4-libsnappyjava.so加载共享库ld- linux-x86-64.so.2时出错:没有这样的文件或目录

37

在这篇文章中,我们将为您详细介绍UnsatisfiedLinkError:/tmp/snappy-1.1.4-libsnappyjava.so加载共享库ld-linux-x86-64.so.2时出错:

在这篇文章中,我们将为您详细介绍UnsatisfiedLinkError:/tmp/snappy-1.1.4-libsnappyjava.so加载共享库ld- linux-x86-64.so.2时出错:没有这样的文件或目录的内容。此外,我们还会涉及一些关于Android ReactNative java.lang.UnsatisfiedLinkError:可以找到要加载的DSO:libreactnativejni.so、android – “/ system / bin / linker:没有这样的文件或目录”错误尝试编译TensorFlow、android-Java.lang.UnsatisfiedLinkError:找不到“ libstlport_shared.so、c – linux / kernel.h:没有这样的文件或目录的知识,以帮助您更全面地了解这个主题。

本文目录一览:

UnsatisfiedLinkError:/tmp/snappy-1.1.4-libsnappyjava.so加载共享库ld- linux-x86-64.so.2时出错:没有这样的文件或目录

UnsatisfiedLinkError:/tmp/snappy-1.1.4-libsnappyjava.so加载共享库ld- linux-x86-64.so.2时出错:没有这样的文件或目录

我正在尝试在kubernetes中运行Kafka Streams应用程序。当启动Pod时,出现以下异常:

Exception in thread "streams-pipe-e19c2d9a-d403-4944-8d26-0ef27ed5c057-StreamThread-1"java.lang.UnsatisfiedLinkError: /tmp/snappy-1.1.4-5cec5405-2ce7-4046-a8bd-922ce96534a0-libsnappyjava.so: Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /tmp/snappy-1.1.4-5cec5405-2ce7-4046-a8bd-922ce96534a0-libsnappyjava.so)        at java.lang.ClassLoader$NativeLibrary.load(Native Method)        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)        at java.lang.Runtime.load0(Runtime.java:809)        at java.lang.System.load(System.java:1086)        at org.xerial.snappy.SnappyLoader.loadNativeLibrary(SnappyLoader.java:179)        at org.xerial.snappy.SnappyLoader.loadSnappyApi(SnappyLoader.java:154)        at org.xerial.snappy.Snappy.<clinit>(Snappy.java:47)        at org.xerial.snappy.SnappyInputStream.hasNextChunk(SnappyInputStream.java:435)        at org.xerial.snappy.SnappyInputStream.read(SnappyInputStream.java:466)        at java.io.DataInputStream.readByte(DataInputStream.java:265)        at org.apache.kafka.common.utils.ByteUtils.readVarint(ByteUtils.java:168)        at org.apache.kafka.common.record.DefaultRecord.readFrom(DefaultRecord.java:292)        at org.apache.kafka.common.record.DefaultRecordBatch$1.readNext(DefaultRecordBatch.java:264)        at org.apache.kafka.common.record.DefaultRecordBatch$RecordIterator.next(DefaultRecordBatch.java:563)        at org.apache.kafka.common.record.DefaultRecordBatch$RecordIterator.next(DefaultRecordBatch.java:532)        at org.apache.kafka.clients.consumer.internals.Fetcher$PartitionRecords.nextFetchedRecord(Fetcher.java:1060)        at org.apache.kafka.clients.consumer.internals.Fetcher$PartitionRecords.fetchRecords(Fetcher.java:1095)        at org.apache.kafka.clients.consumer.internals.Fetcher$PartitionRecords.access$1200(Fetcher.java:949)        at org.apache.kafka.clients.consumer.internals.Fetcher.fetchRecords(Fetcher.java:570)        at org.apache.kafka.clients.consumer.internals.Fetcher.fetchedRecords(Fetcher.java:531)        at org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:1146)        at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1103)        at org.apache.kafka.streams.processor.internals.StreamThread.pollRequests(StreamThread.java:851)        at org.apache.kafka.streams.processor.internals.StreamThread.runOnce(StreamThread.java:808)        at org.apache.kafka.streams.processor.internals.StreamThread.runLoop(StreamThread.java:774)        at org.apache.kafka.streams.processor.internals.StreamThread.run(StreamThread.java:744)

以前,我曾尝试使用docker容器启动kafka和kafka-streams-app,它们运行得很好。这是我第一次尝试使用Kubernetes。

这是我的 DockerFile StreamsApp

FROM openjdk:8u151-jdk-alpine3.7COPY /target/streams-examples-0.1.jar /streamsApp/COPY /target/libs /streamsApp/libsCMD ["java", "-jar", "/streamsApp/streams-examples-0.1.jar"]

我该怎么做才能克服这个问题?请帮我。

编辑:

/ # ldd /usr/bin/java     /lib/ld-musl-x86_64.so.1 (0x7f03f279a000)Error loading shared library libjli.so: No such file or directory (needed by /usr/bin/java)    libc.musl-x86_64.so.1 => /lib/ld-musl-x86_64.so.1 (0x7f03f279a000)Error relocating /usr/bin/java: JLI_Launch: symbol not found

答案1

小编典典

错误消息指出* libsnappyjava.so无法找到ld-
linux-x86-64.so.2。这是一个glibc动态加载程序,而Alpine映像无法与glibc一起运行。您可以尝试通过在Dockerfile中安装libc6-compat软件包来使其运行,例如:

RUN apk update && apk add --no-cache libc6-compat

Android ReactNative java.lang.UnsatisfiedLinkError:可以找到要加载的DSO:libreactnativejni.so

Android ReactNative java.lang.UnsatisfiedLinkError:可以找到要加载的DSO:libreactnativejni.so

我一直在尝试将ReactNative添加到我现有的android应用程序中.我遵循了this链接中的说明.我可以添加它,但是一旦打开react native活动,应用程序就会崩溃.我已经开始使用服务器

adb reverse tcp:8081 tcp:8081

并开始使用本机

react-native start

我得到一个对话框,提示js文件正在加载.但是最后以崩溃告终.以下是在logcat中打印的错误:

java.lang.UnsatisfiedLinkError: Couldn't find DSO to load: libreactnativejni.so
    at com.facebook.soloader.soLoader.loadLibraryBySoName(SoLoader.java:213)
    at com.facebook.soloader.soLoader.loadLibrary(SoLoader.java:178)
    at com.facebook.react.bridge.JSCJavaScriptExecutor.<clinit>(JSCJavaScriptExecutor.java:19)
    at com.facebook.react.ReactInstanceManager.onjsBundleLoadedFromServer(ReactInstanceManager.java:413)
    at com.facebook.react.ReactInstanceManager.createReactContextInBackground(ReactInstanceManager.java:236)

我完全迷路了,因为我无法找出导致此问题的原因.

提前致谢.

解决方法:

这是由以下问题引起的(开放2年)https://github.com/facebook/react-native/issues/2814

从问题:

React Native on Android doesn’t provide a 64-bit version of the libreactnativejni.so native library, which can cause compatibility issues on 64-bit devices. I ran into this while attempting to integrate React Native with a large existing application I’m developing.

来自Facebook的反应:

Thanks for reporting! Yes we don’t provide 64-bit version of the native code and the system should always fall back to 32-bit.

And:

Most Android projects use a number of 3rd-party libraries, and any that include native 64-bit code will cause React Native to fail.

以下SO回答Use 32-bit jni libraries on 64-bit android解释了回退到32位库以及您无法混合使用的事实.因此,如果找到64位,则所有都应为64位

我建议阅读Github问题#2814.建议了多个修复程序,但是哪种方法有效取决于您的情况.

发行人还写了一个博客:Mixing 32- and 64-bit Dependencies in Android

希望这可以帮助!

android – “/ system / bin / linker:没有这样的文件或目录”错误尝试编译TensorFlow

android – “/ system / bin / linker:没有这样的文件或目录”错误尝试编译TensorFlow

我正在尝试为运行the building script的Android编译te​​nsorflow-lite,但构建过程因此错误而停止:

/system/bin/linker: No such file or directory

我可以理解构建过程是如何工作的(compilation + linking)但我无法弄清楚为什么需要这个’/ system / bin / linker’.此链接器不存在于SDK或NDK文件夹中,并且它不存在于主机的文件夹树中(我使用Linux进行构建过程).

它看起来像Android文件结构的一部分,但构建过程不应该依赖于最终的系统结构.

我试图构建的元素是’schema_fbs’,它使用flatbuffers(第三方依赖)编译部分代码.我正在使用的完整句子是:

bazel build \
--cxxopt='--std=c++11' \
--crosstool_top=//external:android/crosstool \
--host_crosstool_top=@bazel_tools//tools/cpp:toolchain \
--cpu=armeabi-v7a \
--verbose_failures \
--subcommands \
//tensorflow/contrib/lite/schema:schema_fbs

它可能是由Bazel构建脚本中的测试用例引起的(我已经评论了我发现的所有测试),但为什么需要链接器呢?在编译过程中,我是否需要做一些事情来定义这个’system’文件夹?

笔记:

目标操作系统:Android

主机操作系统:Ubuntu 16.04

使用NDK:v16b(使用v17测试但不兼容)

完整的错误消息:

INFO: Analysed target //tensorflow/contrib/lite/schema:schema_fbs_srcs (0 packages loaded).
INFO: Found 1 target...
SUBCOMMAND: # //tensorflow/contrib/lite/schema:schema_fbs_srcs [action 'Generating flatbuffer files for schema_fbs_srcs: //tensorflow/contrib/lite/schema:schema_fbs_srcs']
(cd /home/user/.cache/bazel/_bazel_user/73606864f5ec4cce18dd83a6cbcd2bc2/execroot/org_tensorflow && \
  exec env - \
    LD_LIBRARY_PATH=/usr/local/lib:/home/user/Libraries/llvm-4.0.0.src/build/lib: \
    PATH=/home/user/Software/git-sizer:/home/user/Android/Sdk/platform-tools:/home/user/anaconda3/bin:/home/user/Libraries/llvm-4.0.0.src/build/bin:/home/user/bin:/home/user/repo/caffe/build/install/lib:/home/user/Software/cmake-3.10.3-Linux-x86_64/bin:::::/home/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin \
  /bin/bash -c 'source external/bazel_tools/tools/genrule/genrule-setup.sh; for f in tensorflow/contrib/lite/schema/schema.fbs; do bazel-out/armeabi-v7a-opt/bin/external/flatbuffers/flatc --no-union-value-namespacing --gen-object-api  -c -o bazel-out/armeabi-v7a-opt/genfiles/tensorflow/contrib/lite/schema $f; done')
ERROR: /home/user/Repositories/git/tensorflow/tensorflow/contrib/lite/schema/BUILD:57:1: Generating flatbuffer files for schema_fbs_srcs: //tensorflow/contrib/lite/schema:schema_fbs_srcs Failed (Exit 255): bash Failed: error executing command 
  (cd /home/user/.cache/bazel/_bazel_user/73606864f5ec4cce18dd83a6cbcd2bc2/execroot/org_tensorflow && \
  exec env - \
    LD_LIBRARY_PATH=/usr/local/lib:/home/user/Libraries/llvm-4.0.0.src/build/lib: \
    PATH=/home/user/Software/git-sizer:/home/user/Android/Sdk/platform-tools:/home/user/anaconda3/bin:/home/user/Libraries/llvm-4.0.0.src/build/bin:/home/user/bin:/home/user/repo/caffe/build/install/lib:/home/user/Software/cmake-3.10.3-Linux-x86_64/bin:::::/home/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin \
  /bin/bash -c 'source external/bazel_tools/tools/genrule/genrule-setup.sh; for f in tensorflow/contrib/lite/schema/schema.fbs; do bazel-out/armeabi-v7a-opt/bin/external/flatbuffers/flatc --no-union-value-namespacing --gen-object-api  -c -o bazel-out/armeabi-v7a-opt/genfiles/tensorflow/contrib/lite/schema $f; done')
/system/bin/linker: No such file or directory
Target //tensorflow/contrib/lite/schema:schema_fbs_srcs Failed to build
INFO: Elapsed time: 0.572s, Critical Path: 0.02s
INFO: 0 processes.
Failed: Build did NOT complete successfully

解决方法:

TensorFlow Lite AAR也可以使用以下方式构建:

bazel build --cxxopt='--std=c++11' -c opt --fat_apk_cpu=x86,x86_64,arm64-v8a,armeabi-v7a tensorflow/contrib/lite/java:tensorflow-lite

并且您必须确保运行./configure并让它为您配置SDK和NDK.

android-Java.lang.UnsatisfiedLinkError:找不到“ libstlport_shared.so

android-Java.lang.UnsatisfiedLinkError:找不到“ libstlport_shared.so

我是sql Cipher的新手.我读了很多东西,并在项目中实现了sqlCipher.

我已经将下面的JAR文件放到app / src / libs中

> commons-codec.jar
>番石榴r09.jar
> sqlcipher.jar
> sqlcipher-javadoc

我已经将以下文件放入app / src / main / assets

> icudt46l.zip

我已将以下文件放入app / src / main / jniLibs

>在文件夹中:armeabi

> libdatabase_sqlcipher.so
> libsqlcipher_android.so
> libstlport_shared.so

>在文件夹中:armeabi-v7a

> libdatabase_sqlcipher.so
> libsqlcipher_android.so
> libstlport_shared.so

>在文件夹中:x86

> libdatabase_sqlcipher.so
> libsqlcipher_android.so
> libstlport_shared.so

在Android Studio中我的gradle文件下面.

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsversion "22.0.1"

    defaultConfig {
        applicationId "abc.com.sqlcipher"
        minSdkVersion 10
        targetSdkVersion 22
        versionCode 1
       versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
}
dependencies {
    compile filetree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.1'
}

在此之后,我运行我的应用程序,每次都崩溃并出现以下错误.

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/abc.com.sqlcipher-1/base.apk"],nativeLibraryDirectories=[/data/app/abc.com.sqlcipher-1/lib/arm, /vendor/lib, /system/lib]]] Couldn't find "liblibstlport_shared.so"

解决方法:

4至5个小时后,我从一位朋友那里得到了解决方案.

在android {}块之前,将以下代码写入build.gradle文件.

repositories {
    maven {
        url "https://s3.amazonaws.com/repo.commonsware.com"
    }
}

在下面的代码行中写入依赖项{}块.

compile 'com.commonsware.cwac:sqlcipher-for-android:3.3.1'

现在,您同步项目,然后可以轻松地将sql-Cipher数据库使用到应用程序中.

c – linux / kernel.h:没有这样的文件或目录

c – linux / kernel.h:没有这样的文件或目录

我将在Ubuntu 10.10中编写一个Hello World模块(内核为2.6.35-28-generic).标题位于:
/usr/src/linux-headers-2.6.35-28-generic

你好ç:

#include <linux/kernel.h> 
#include <linux/module.h>

int init_module(void)
{
    printk("Hello,world\n");
    return 0;
}

void cleanup_module(void)
{
    printk("Goodbye\n");
}

和Makefile:

CC = gcc
CFLAGS = -Wall -DMODULE -D__KERNEL__
hello.o: hello.c
    $(CC) $(CFLAGS) -c hello.c
    echo insmod hello.o to install
    echo rmmod to delete

make时出错:

hello.c:1: Fatal error: linux/kernel.h : No such file or directory
compilation terminated.

我该如何解决这个问题?

解决方法

你有/usr/src / linux符号链接到你的/usr/src/linux-headers-2.6.35-28-generic吗?
如果没有,则使用以下命令创建一个
# cd /usr/src
# ln -sfn linux-headers-2.6.35-28-generic linux

今天关于UnsatisfiedLinkError:/tmp/snappy-1.1.4-libsnappyjava.so加载共享库ld- linux-x86-64.so.2时出错:没有这样的文件或目录的讲解已经结束,谢谢您的阅读,如果想了解更多关于Android ReactNative java.lang.UnsatisfiedLinkError:可以找到要加载的DSO:libreactnativejni.so、android – “/ system / bin / linker:没有这样的文件或目录”错误尝试编译TensorFlow、android-Java.lang.UnsatisfiedLinkError:找不到“ libstlport_shared.so、c – linux / kernel.h:没有这样的文件或目录的相关知识,请在本站搜索。

本文标签: