这是一个Egret引擎开发的游戏项目,运行时出现错误。
java.lang.UnsatisfiedLinkError: dalvik.system.DexClassLoader[DexPathList[[zip file "/data/user/0/com.ingame.bankui/files/runtime-dex.jar"],nativeLibraryDirectories=[/data/app/~~fPWBcLBHlKYqsuRZ5-ObiA==/com.ingame.bankui-7Hu4h6eiXY760ORMDBFTlA==/lib/arm64, /system/lib64, /system/system_ext/lib64]]] couldn't find "libegret.so"
at java.lang.Runtime.loadLibrary0(Runtime.java:1083)
at java.lang.Runtime.loadLibrary0(Runtime.java:1008)
at java.lang.System.loadLibrary(System.java:1664)
at org.egret.egretnativeandroid.NativeKey.<clinit>(NativeKey.java:12)
at java.lang.reflect.Method.invoke(Native Method)
at org.egret.egretnativeandroid.EgretNativeAndroid.a(EgretNativeAndroid.java:177)
at org.egret.egretnativeandroid.EgretNativeAndroid.initialize(EgretNativeAndroid.java:99)
at com.ingame.bankui.MainActivity.onCreate(MainActivity.java:139)
at android.app.Activity.performCreate(Activity.java:8198)
at android.app.Activity.performCreate(Activity.java:8182)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3765)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3968)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8512)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
我找了两天也没找到原因。 如果您知道如何解决请帮帮我。谢谢。
我尝试过修改Gradle版本和Gradle插件版本,修改JDK版本,修改Gradle的一些配置,但都没有解决这个问题
我通过在 AndroidManifest.xml 中配置应用程序节点来解决这个问题,
Android: extractNativeLibs="true"
或者你可以在 gradle 中执行此操作
packagingOptions {
jniLibs {
useLegacyPackaging = true
}
}
效果是一样的。 然后再次运行就不会报错了。 我希望这可以帮助你。