关于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)
- android – Samsung S6上的UnsatisfiedLinkError
- android – UnsatisfiedLinkError nativeLibraryDirectories = [/ vendor / lib64,/ system / lib64
- android 中加载so库出现 UnsatisfiedLinkError
- ava.lang.UnsatisfiedLinkError:
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
在这个项目中,我正在链接我自己的本机库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?
解决方法
您确定没有其他库可以在APK的lib / arm64-v8a文件夹中包含.so文件吗?在这种情况下,只安装此文件夹中的库(没有你的).
编辑:要仅包含x86和armeabi-v7a库,您可以使用abiFilters:
android { .... defaultConfig { .... ndk { abiFilters "armeabi-v7a","x86" } } }
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进行搜索?
解决方法
要验证这是您的问题,请打开构建的apk并查看“lib”目录.其中的每个子目录代表本机二进制体系结构.如果您没有为该体系结构构建所有本机.so文件,则该目录不应该存在.找出原因并停止它.
其中一个例子就是Crashlytics可以安静地捆绑自己.由此产生的崩溃仅出现在64位设备上,因为32位设备从不搜索64位体系结构目录.
您必须从所有第三方中间件中删除未完全支持的体系结构.
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:
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:的相关信息,请在本站查询。
本文标签: