在android开发中会遇到各种SDK的接入,很是麻烦。最初在想能不能把所有的SDK都 融合到一个当中,发现有点异想天开。但是也可以解决SDK资源不小心没有引入,导致程序调用接口崩溃问题。经过查资料,还是写了一个小Demo,仅供参 考!很早之前写的了,估计移动基地SDK,有变动,不过道理是一样的。
仅以移动基地SDK举例。
1.移动支付需要的SO文件导入
public class CarrotApplication extendsApplication {//是否含有移动支付SDK
boolean useCMBilling = false;
@Overridepublic voidonCreate() {//TODO Auto-generated method stub
try{
Class.forName("cn.cmgame.billing.api.GameInterface");
useCMBilling= true;
}catch(ClassNotFoundException ignored) {
}if(useCMBilling){
System.loadLibrary("megjb");
}
}
}
2.初始化移动基地支付
protected voidinit_cmcc(String app_name, String app_company,
String telphone_number) {try{
Object [] cmcc_init_obj={CarrotPaySDK.mContext,app_name,app_company,telphone_number};
Class> [] classparam = {Activity.class,String.class,String.class,String.class};
cfcaim.invokeStaticMethod("cn.cmgame.billing.api.GameInterface","initializeApp",cmcc_init_obj,classparam);
}catch(Exception e) {//TODO: handle exception
Log.e("init_cmcc异常捕捉", "异常:"+e.toString());
}
}
3.上面 invokeStaticMethod 的实现
/*** 执行某个类的静态方法
*@paramclassName 类名
*@param