GVKun编程网logo

UnsatisfiedLinkError Libgdx桌面(unsatisfiedlinkerror dll)

20

关于UnsatisfiedLinkErrorLibgdx桌面和unsatisfiedlinkerrordll的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于android–SamsungS

关于UnsatisfiedLinkError Libgdx桌面unsatisfiedlinkerror dll的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于android – Samsung S6上的UnsatisfiedLinkError、android – UnsatisfiedLinkError nativeLibraryDirectories = [/ vendor / lib64,/ system / lib64、android 中加载so库出现 UnsatisfiedLinkError、ava.lang.UnsatisfiedLinkError:等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

UnsatisfiedLinkError Libgdx桌面(unsatisfiedlinkerror dll)

UnsatisfiedLinkError Libgdx桌面(unsatisfiedlinkerror dll)

我在桌面上遇到LibGDX的问题。尝试启动应用程序时,我始终收到以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: com.badlogic.gdx.utils.BufferUtils.newDisposableByteBuffer(I)Ljava/nio/ByteBuffer;at com.badlogic.gdx.utils.BufferUtils.newDisposableByteBuffer(Native Method)at com.badlogic.gdx.utils.BufferUtils.newUnsafeByteBuffer(BufferUtils.java:288)at com.badlogic.gdx.graphics.glutils.VertexArray.<init>(VertexArray.java:62)at com.badlogic.gdx.graphics.glutils.VertexArray.<init>(VertexArray.java:53)at com.badlogic.gdx.graphics.Mesh.<init>(Mesh.java:148)at com.badlogic.gdx.graphics.g2d.SpriteBatch.<init>(SpriteBatch.java:173)at com.badlogic.gdx.graphics.g2d.SpriteBatch.<init>(SpriteBatch.java:142)at com.badlogic.gdx.graphics.g2d.SpriteBatch.<init>(SpriteBatch.java:121)at com.badlogic.gdx.graphics.g2d.SpriteBatch.<init>(SpriteBatch.java:115)

我将以下库添加到我的项目中:

  • gdx.jar
  • gdx-sources.jar
  • gdx-natives.jar
  • gdx-backend-lwjgl.jar
  • gdx-backend-lwjgl-natives.jar

我想念什么吗?

我已经搜索了很多东西,但是我发现的一切都是针对Android的,它告诉我将arm文件夹中的.so库添加到我的项目中,但是对于Wintel平台上的桌面项目而言,这对我来说没有任何意义。

答案1

小编典典

我建议您使用此GUI设置项目。它应为您提供适用于所有平台的有效设置。您也可以使用最新的每晚版本,并检查问题是否仍然存在。问题可能在于本地库与其他jar不匹配。

另一个问题可能是您太早实例化了SpriteBatch(或其他内部使用SpriteBatch的实例)(在stacktrace中看起来像这样)。例如静态地像这样:

private static SpriteBatch batch = new SpriteBatch();

这是行不通的,因为此时libgdx设置不正确。而是在游戏的create/ show方法中创建此类内容。

android – Samsung S6上的UnsatisfiedLinkError

android – Samsung S6上的UnsatisfiedLinkError

我有 Android项目(不是ndk).
在这个项目中,我正在链接我自己的本机库myLib.so.
我编译了我的库:armeabi-v7a和x86.
所以在jniLibs文件夹中我有两个文件夹和我的lib:armeabi-v7a,x86.

当用户在Samsung S6上运行我的应用程序时,我有下一个崩溃日志:

> java.lang.UnsatisfiedLinkError:
> dalvik.system.PathClassLoader[DexPathList[[zip file
> "/data/app/com.mycompany.test-2/base.apk"],nativeLibraryDirectories=[/data/app/com.mycompany.test-2/lib/arm64,> /vendor/lib64,/system/lib64]]]


> Couldn't find "myLib.so" at java.lang.Runtime.loadLibrary(Runtime.java:366) at
> java.lang.System.loadLibrary(System.java:989)

这是怎么回事 ?为什么64位设备没有运行我的lib?

解决方法

如果您只有x86和armeabi-v7a库,则您的应用程序应自动以“32位模式”安装.

您确定没有其他库可以在APK的lib / arm64-v8a文件夹中包含.so文件吗?在这种情况下,只安装此文件夹中的库(没有你的).

编辑:要仅包含x86和armeabi-v7a库,您可以使用abiFilters:

android {
    ....
    defaultConfig {
        ....
        ndk {
            abiFilters "armeabi-v7a","x86"
        }
    }
}

android – UnsatisfiedLinkError nativeLibraryDirectories = [/ vendor / lib64,/ system / lib64

android – UnsatisfiedLinkError nativeLibraryDirectories = [/ vendor / lib64,/ system / lib64

情况如下:

我有一个64位的apk应该是来自/ system / lib的32位共享对象(.so文件).但是apk运行时崩溃并报告:

UnsatisfiedLinkError nativeLibraryDirectories=[/vendor/lib64,/system/lib64

我认为它试图从/ system / lib64搜索位于/ system / lib中的.so文件,然后发生错误.

我如何从/ system / lib而不是/ system / lib64进行搜索?

解决方法

发生这种情况是因为您捆绑了至少一个64位本机库. Android检测到这一点,并决定在64位的位置寻找其余的.so文件.它找不到它们,因为您只构建32位体系结构.

要验证这是您的问题,请打开构建的apk并查看“lib”目录.其中的每个子目录代表本机二进制体系结构.如果您没有为该体系结构构建所有本机.so文件,则该目录不应该存在.找出原因并停止它.

其中一个例子就是Crashlytics可以安静地捆绑自己.由此产生的崩溃仅出现在64位设备上,因为32位设备从不搜索64位体系结构目录.

您必须从所有第三方中间件中删除未完全支持的体系结构.

android 中加载so库出现 UnsatisfiedLinkError

android 中加载so库出现 UnsatisfiedLinkError

在libs下一般有armeabi、x86两个目录,可以把相应版本的so库放在这里。但是当依赖的第三方库(比如aar类型的)多时,在打包过程中可能多出来armeabi-v7a目录,其中可能只有一个或者两个so, 而其他的so都在armeabi和x86中。当armeabi-v7a存在时, 可能会导致armeabi 中的一部分so库不可用(可能和路径优先级、so库排序有关)。

解决方法: 查看打包出来的apk中的lib是不是出现了上述情况,可以把armeabi中的so全部复制到armeabi-v7a 中。


可以通过 adb shell——cd /proc------cat cpuinfo 命令查看设备的cpu类型。

ava.lang.UnsatisfiedLinkError:

ava.lang.UnsatisfiedLinkError:

dalvik.system.PathClassLoader[DexPathList[[zipfile"/data/app/ngdom.android.newphone-1/base.apk"],
nativeLibraryDirectories=[/data/app/gdom.android.newphone-1/lib/arm, /data/app/gdom.android.newphone-1/base.apk!
/lib/armeabi-v7a, /vendor/lib, /system/lib]]] couldn''t find "preprocessing.so"

今天主项目嵌入 aar 文件,报上面的错,明明项目中是有这个 so 的,但是就是提示找不到...

最后在主项目下的 build.gradel 中添加如下

defaultConfig {  
          
       。。。  
  
        ndk {  
            abiFilters "armeabi", "armeabi-v7a", "x86", "mips"  
        }  
  
    } 

 并将 aar 中的 so 库删除掉,copy 到主项目大 libs 下

完美解决....

我们今天的关于UnsatisfiedLinkError Libgdx桌面unsatisfiedlinkerror dll的分享已经告一段落,感谢您的关注,如果您想了解更多关于android – Samsung S6上的UnsatisfiedLinkError、android – UnsatisfiedLinkError nativeLibraryDirectories = [/ vendor / lib64,/ system / lib64、android 中加载so库出现 UnsatisfiedLinkError、ava.lang.UnsatisfiedLinkError:的相关信息,请在本站查询。

本文标签: