java.lang.UnsaisfiedLinkError:找不到void org.libsdl.app.SDLActi



我正在尝试运行一个使用buildozer生成的APK。在尝试在几个物理和虚拟设备上运行后,我总是得到相同的错误:

2022-02-08 18:05:17.702 10070-10070/org.test.butterfly E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.test.butterfly, PID: 10070
java.lang.UnsatisfiedLinkError: No implementation found for void org.libsdl.app.SDLActivity.nativeSetenv(java.lang.String, java.lang.String) (tried Java_org_libsdl_app_SDLActivity_nativeSetenv and Java_org_libsdl_app_SDLActivity_nativeSetenv__Ljava_lang_String_2Ljava_lang_String_2)
at org.libsdl.app.SDLActivity.nativeSetenv(Native Method)
at org.kivy.android.PythonActivity$UnpackFilesTask.onPostExecute(PythonActivity.java:157)
at org.kivy.android.PythonActivity$UnpackFilesTask.onPostExecute(PythonActivity.java:102)
at android.os.AsyncTask.finish(AsyncTask.java:771)
at android.os.AsyncTask.access$900(AsyncTask.java:199)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:788)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

这是我第一次使用安卓工作室,直到现在我还没有找到合适的解决方案来解决这个错误。如果有任何帮助,我将不胜感激。

您可以在下面的链接中下载APK:

https://drive.google.com/file/d/1B8D2fbUg5-3nlkJHFDJHrwAciKPtftkF/view?usp=sharing

错误消息No implementation found for void org.libsdl.app.SDLActivity.nativeSetenv(java.lang.String, java.lang.String) (tried Java_org_libsdl_app_SDLActivity_nativeSetenv and Java_org_libsdl_app_SDLActivity_nativeSetenv__Ljava_lang_String_2Ljava_lang_String_2)意味着您的应用程序的加载的.so库中没有一个提供实现本机方法org.libsdl.app.SDLActivity.nativeSetenv的匹配方法。

因此,应用程序的一个库必须分别导出一个名为Java_org_libsdl_app_SDLActivity_nativeSetenvJava_org_libsdl_app_SDLActivity_nativeSetenv__Ljava_lang_String_2Ljava_lang_String_2的方法,并且必须使用System.loadLibrary加载该库,然后才能调用本机方法。

比较libs的子文件夹,很明显APK:有问题

libarm64-v8alibtensorflowlite_jni.so
libarmeabi-v7alibcrypto1.1.so
libarmeabi-v7alibffi.so
libarmeabi-v7alibhidapi.so
libarmeabi-v7alibmain.so
libarmeabi-v7alibpython3.8.so
libarmeabi-v7alibSDL2.so
libarmeabi-v7alibSDL2_image.so
libarmeabi-v7alibSDL2_mixer.so
libarmeabi-v7alibSDL2_ttf.so
libarmeabi-v7alibsqlite3.so
libarmeabi-v7alibssl1.1.so
libarmeabi-v7alibtensorflowlite_jni.so
libx86libtensorflowlite_jni.so
libx86_64libtensorflowlite_jni.so

正如您在armeabi-v7a文件夹中看到的,与其他体系结构的文件夹相比,这些文件夹中的库要多得多。这意味着,对于除armv7之外的所有体系结构,您的应用程序都会错过一大组库。因此,您需要一个支持armv7以外的其他体系结构的libsdl版本。

相关内容

  • 没有找到相关文章

最新更新