目的:离线生成自定义基座,然后把安卓第三方包的jar包,so文件打进去,以供js调用。
问题:基座打包好了,但是第三方包里有一个java类,用plus.android.importClass()导入其类对象,返回null。而同个包下的其他java类则可以导入成功,不明所以,不知从何下手。
求救于各位前辈大佬们。
离线打包按照官方文档https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android中的方式一操作。
mui.plusReady(function() {
try{
var addr = "/dev/ttyMT1";
var JniModuleAPI = plus.android.importClass('com.uhf.api.cls.JniModuleAPI');
alert("JniModuleAPI:\n"+JniModuleAPI);//返回:null
//导入类对象
var Reader = plus.android.importClass('com.uhf.api.cls.Reader');
//alert(Reader.MAXANTCNT);//可以拿到值,16(静态对象)
//创建实例对象
var mReader = new Reader();//不import JniModuleAPI类报:SyntaxError:Unexpected identifier;
//import JniModuleAPI类,报java.lang.NoClassDefFoundError:com.uhf.api.cls.JniModuleAPI;at new com.uhf.api.cls.Reader
}catch(e){
alert(e);
}
})
以下是JniModuleAPI类代码:
package com.uhf.api.cls;
public class JniModuleAPI
{
public JniModuleAPI()
{
}
public native int InitReader(int ai[], String s, int i);
public native int InitReader_Notype(int ai[], String s, int i);
static
{
System.loadLibrary("ModuleAPIJni");
}
}
2 个回复
吾逍遥 - 北京九思自然科技
楼主真好,有问题解决了也及时回复,并提醒了关键词,有利于后来人查阅,点个赞先
素白年代 (作者)
没有大佬指教吗?---
素白年代 (作者)
已解决,没有在android studio配置ndk。
2021-01-05 21:15