通常android的平台接入需要使用jni来接入java接口,应该注意以下几点问题:

java接口要是静态,并且是public类型

//获取渠道IDpublic static String getPackageChannelId() {    return packageChannelId;}

编译的sdk配置文件proguard-project.txt中需要描述不能混淆接口代码

# If your project uses WebView with JS, uncomment the following# and specify the fully qualified class name to the JavaScript interface# class:#-keepclassmembers class fqcn.of.javascript.interface.for.webview {#   public *;#}-keep class com.baidu.android.** { *; }-keep class com.supersdk.** { *; }-keep class com.supersdk.framework.** { *; }-keepclassmembers class org.cocos2dx.lua.AppActivity {   public *;}-keepclassmembers class org.cocos2dx.lua.SuperSdkForJava {   public *;}

Lua上层接口中需要描述完整的参数接口

--实现闪屏操作 function supersdk.showLogo(LogoName)    local luaj = require "cocos.cocos2d.luaj"    local className = "org/cocos2dx/lua/SuperSdkForJava"    local args={LogoName}    local sig="(Ljava/lang/String;)V"    luaj.callStaticMethod(className, "showLogo",args,sig)end-- className 为完整指向调用接口的类名-- args 为传入参数的数组,按java参数顺序放置-- sig  为接口参数类型描述标记-- luaj.callStaticMethod(类名,方法名,参数,参数标记)

Lua上层接口中使用LuaBridge时参数描述

-- V  代表void-- Z  代表bool-- I  代表int-- 扩充类型 LXXX; 以String举例Ljava/lang/String; 特别注意其中“;”不能省略  -- 整个参数描述结构为    (参数1参数2参数3...)返回参数

调用接口时容易出错的地方是string类型的参数,少了后面的“;”,以及无参函数,参数应该传入“{}”空数组,只有是传入参数和返回参数都为空,才可以不传后面两个参数。

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Fedora镜像
  3. Python技巧匿名函数、回调函数和高阶函数
  4. python list.sort()根据多个关键字排序的方法实现
  5. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  6. android中文api(89)——ViewManager
  7. Android调用天气预报的WebService简单例子
  8. Android(安卓)Activity的启动
  9. 2011年Android(安卓)Camera学习笔记之一

随机推荐

  1. [Java][Android][Process] ProcessBuilde
  2. Android学习笔记(四十):Preference的使用
  3. [置顶] android textview 首行缩进 多行
  4. Android x86用来做模拟器调试
  5. 【Android应用开发】-(19)Android(安卓)串
  6. Android 学习笔记3(Activity之间参数传递)
  7. PermissionsDispatcher库的使用(简单处理A
  8. Uiautomator Api浅析
  9. Android SQLite Database Tutorial
  10. Android 高仿74款APP