unity安卓so包与其他第三方so包冲突问题 Unable to find main / No implementation found for
最近公司项目需要,在安卓端使用了视频直播的第三方包和unity的第三方包,问题来了,引用了视频直播的包之后,unity的嵌入程序启动会报错,Process: e.unitry3d, PID: 30302java.lang.UnsatisfiedLinkError: No implementation found for void com.unity3d.player.UnityPla...
·
最近公司项目需要,在安卓端使用了视频直播的第三方包和unity的第三方包,问题来了,引用了视频直播的包之后,unity的嵌入程序启动会报错,
Process: e.unitry3d, PID: 30302
java.lang.UnsatisfiedLinkError: No implementation found for void com.unity3d.player.UnityPlayer.nativeRestartActivityIndicator() (tried Java_com_unity3d_player_UnityPlayer_nativeRestartActivityIndicator and Java_com_unity3d_player_UnityPlayer_nativeRestartActivityIndicator__)
at com.unity3d.player.UnityPlayer.nativeRestartActivityIndicator(Native Method)
at com.unity3d.player.UnityPlayer.resume(Unknown Source:23)
at com.unity3d.player.UnityPlayerActivity.onResume(Unknown Source:5)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1413)
at android.app.Activity.performResume(Activity.java:7292)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3803)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3843)
at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1823)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:198)
at android.app.ActivityThread.main(ActivityThread.java:6729)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
找了好久 发现这个报错和32位和64位有关。
主要参考连接:
E/Unity: Unable to find main
次要参考连接:
Unable to find main - arm64?
现在大概说一下自己理解的问题原因吧 ,
其实就是第三方包里面使用了arm64-v8a这个包 导致系统改成64位了,
然而使用mono打包的unity安卓工程是32位的
所以在64位的安卓应用上运行32位的unity程序,它要找的还是64位的包 这时就没有 所以报错退出
要做的也比较简单 ,但是自己摸索unity打包选项需要一定时间
就是在playersettings里面像下面这样选择即可
打出来的包按照另外一篇文章的方法来放置就可以了
更多推荐
已为社区贡献12条内容
所有评论(0)