欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

cocos creator JavaScript 调用 Java 提示: call valid: 0, call.getArgumentsCount()= 1

程序员文章站 2022-03-11 18:54:28
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020081317053157.png#pic_center)方法:jsb.reflection.callStaticMethod(AppClassName_contacts, “openContacts”, “(Ljava/lang/String;)V”,“hello”);但是就是报错如上图;分享一下我的解决思路:1、callStaticMethod 是否是参数传递错误jsb.reflection.ca......
			![在这里插入图片描述](https://img-blog.csdnimg.cn/2020081317053157.png#pic_center)

方法:

jsb.reflection.callStaticMethod(AppClassName_contacts, “openContacts”, “(Ljava/lang/String;)V”,“hello”);

但是就是报错如上图;

分享一下我的解决思路:

1、callStaticMethod 是否是参数传递错误

jsb.reflection.callStaticMethod(AppClassName_contacts, "openContacts", "(Ljava/lang/String;)V","hello");

2、Java中是否写错

    public static void openContacts(String hello){
        String permission = Manifest.permission.READ_CONTACTS; //需要的权限
        ActivityCompat.requestPermissions(mactivity, new String[]{permission}, PERMISS_CONTACT);
    }

查了代码都没有问题!

但是真机运行没有问题,也就是说debug版本没有问题,但是release版本出问题。

后来查看android studio 官网,是release版本开启混淆问题引起。
解决办法:

在proj.android-studio中 添加
-keep public class org.your.package** {*;}
-dontwarn org.your.package.**
加上你的包名就可以了

技术指点欢迎骚扰…

本文地址:https://blog.csdn.net/MDD0828/article/details/107984473