mars JNI DETECTED ERROR IN APPLICATION

jdgnovmf  于 2个月前  发布在  其他
关注(0)|答案(9)|浏览(50)
String logPath = Environment.getExternalStorageDirectory().getPath() + "/logsample/xlog";
     
        com.tencent.mars.xlogsample.Log.setLogImp(new Xlog());
        Xlog.appenderOpen(Xlog.LEVEL_DEBUG, Xlog.AppednerModeAsync, "", logPath, "LOGSAMPLE", 0, "");
  Xlog.setConsoleLogOpen(true);
        com.tencent.mars.xlogsample.Log.e("mainactivity", "Environment" + System.currentTimeMillis());

编译的v7a 动态库,拷了log.java和Xlog.java文件到项目中。
如上初始化调用方式。在三星s8+ 9.0系统上报如下问题啊 咋整???????

JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.UnsatisfiedLinkError: classPath:com/tencent/mars/xlog/Xlog
2019-05-21 17:15:51.386 9753-9753/com.tencent.mars.xlogsample A/mars.xlogsampl: java_vm_ext.cc:542]   at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader) (Runtime.java:-2)
2019-05-21 17:15:51.386 9753-9753/com.tencent.mars.xlogsample A/mars.xlogsampl: java_vm_ext.cc:542]   at void java.lang.Runtime.loadLibrary0(java.lang.ClassLoader, java.lang.String) (Runtime.java:1014)
2019-05-21 17:15:51.386 9753-9753/com.tencent.mars.xlogsample A/mars.xlogsampl: java_vm_ext.cc:542]   at void java.lang.System.loadLibrary(java.lang.String) (System.java:1669)
2019-05-21 17:15:51.387 9753-9753/com.tencent.mars.xlogsample A/mars.xlogsampl: java_vm_ext.cc:542]   at void com.tencent.mars.xlogsample.MainActivity.<clinit>() (MainActivity.java:54)
b4lqfgs4

b4lqfgs41#

经过我的几番折腾。如果直接引用

api "com.tencent.mars:mars-xlog:1.0.7

那么就是可以运行的。意思是Xlog.java所在的包名一定要是 com.tencent.mars.xlog吗?
那编译完成后mars_android_sdk还生成文件干嘛 ?

46qrfjad

46qrfjad3#

意思是Xlog.java所在的包名一定要是 com.tencent.mars.xlog吗

是,这是因为 jni 调用需要包名对应上,除非你把 xlog 中的 jni 相关的包名也改了,否则不要改 java 层的包名和类名

nwlqm0z1

nwlqm0z14#

我使用本地编译的so库,运行报这样的错,我的包名没有动
JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.UnsatisfiedLinkError: method:makesureAuthed, sig:(Ljava/lang/String;)Z

ymdaylpp

ymdaylpp5#

我使用本地编译的so库,运行报这样的错,我的包名没有动
JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.UnsatisfiedLinkError: method:makesureAuthed, sig:(Ljava/lang/String;)Z

老哥,我和你一样的问题,不知道解决了没有?

qv7cva1a

qv7cva1a6#

我使用本地编译的so库,运行报这样的错,我的包名没有动
JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.UnsatisfiedLinkError: method:makesureAuthed, sig:(Ljava/lang/String;)Z

老哥,我和你一样的问题,不知道解决了没有?

后来没搞了,我为了解决rn在安卓v7a运行的问题的编译问题,直接打包,解压打出来的apk包,用apk包里的armeabi里边的so替换掉v7a里边的,好像可以运行了
参考 https://www.jianshu.com/p/19693ad8605b

myss37ts

myss37ts7#

好的。谢谢回复
你这个应该只是单纯的编译的不同架构的包。我再尝试下解决遇到的错误

nbysray5

nbysray58#

好的。谢谢回复
你这个应该只是单纯的编译的不同架构的包。我再尝试下解决遇到的错误

老铁解决了没

uxh89sit

uxh89sit9#

好的。谢谢回复
你这个应该只是单纯的编译的不同架构的包。我再尝试下解决遇到的错误

老铁解决了没

我有点记不住是什么问题了。滑稽脸
印象中是java 方法参数和c 的调用对不上,如果不是就不用看了

这样其实很简单,要么是mars 这边修改c 的调用方法,要么mars-demo 里修改java 的方法
这个问题我问过维护人员,他也回复说后续会修复
但是因为会阻塞开发进度,我是修改了java 的方法,不对的参数忽略即可。

再进一步我自己的问题,是我的so 打的都有问题。可能是在开始就把so修改了,我改了java 也没用。
排查到最后全都重新走了一遍才通顺。

相关问题