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)
9条答案
按热度按时间b4lqfgs41#
经过我的几番折腾。如果直接引用
那么就是可以运行的。意思是Xlog.java所在的包名一定要是 com.tencent.mars.xlog吗?
那编译完成后mars_android_sdk还生成文件干嘛 ?
snvhrwxg2#
老哥?I need you
46qrfjad3#
意思是Xlog.java所在的包名一定要是 com.tencent.mars.xlog吗
是,这是因为 jni 调用需要包名对应上,除非你把 xlog 中的 jni 相关的包名也改了,否则不要改 java 层的包名和类名
nwlqm0z14#
我使用本地编译的so库,运行报这样的错,我的包名没有动
JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.UnsatisfiedLinkError: method:makesureAuthed, sig:(Ljava/lang/String;)Z
ymdaylpp5#
我使用本地编译的so库,运行报这样的错,我的包名没有动
JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.UnsatisfiedLinkError: method:makesureAuthed, sig:(Ljava/lang/String;)Z
老哥,我和你一样的问题,不知道解决了没有?
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
myss37ts7#
好的。谢谢回复
你这个应该只是单纯的编译的不同架构的包。我再尝试下解决遇到的错误
nbysray58#
好的。谢谢回复
你这个应该只是单纯的编译的不同架构的包。我再尝试下解决遇到的错误
老铁解决了没
uxh89sit9#
好的。谢谢回复
你这个应该只是单纯的编译的不同架构的包。我再尝试下解决遇到的错误
老铁解决了没
我有点记不住是什么问题了。滑稽脸
印象中是java 方法参数和c 的调用对不上,如果不是就不用看了
这样其实很简单,要么是mars 这边修改c 的调用方法,要么mars-demo 里修改java 的方法
这个问题我问过维护人员,他也回复说后续会修复
但是因为会阻塞开发进度,我是修改了java 的方法,不对的参数忽略即可。
再进一步我自己的问题,是我的so 打的都有问题。可能是在开始就把so修改了,我改了java 也没用。
排查到最后全都重新走了一遍才通顺。