|初始化报异常:java.lang.ClassCastException: android.os.BinderProxy cannot be cast to com.vhall.framework.connect.VHallConnectService$ConnectBinder
产生原因:初始化方法在其他进程内执行; 解决方案:确保初始化方法在app进程内运行;
@Override
public void onCreate() {
super.onCreate();
context = this;
if(isAppProcess()){
VhallSDK.init(this, getResources().getString(R.string.vhall_app_key), getResources().getString(R.string.vhall_app_secret_key));
VssSdk.getInstance().init(getApplicationContext(), getUserId());
}
}
/**
* 判断该进程是否是app进程
* @return
*/
public boolean isAppProcess() {
String processName = getProcessName();
if (processName == null || !processName.equalsIgnoreCase(this.getPackageName())) {
return false;
}else {
return true;
}
}
/**
* 获取运行该方法的进程的进程名
* @return 进程名称
*/
public static String getProcessName() {
int processId = android.os.Process.myPid();
String processName = null;
ActivityManager manager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
Iterator iterator = manager.getRunningAppProcesses().iterator();
while (iterator.hasNext()) {
ActivityManager.RunningAppProcessInfo processInfo = (ActivityManager.RunningAppProcessInfo) (iterator.next());
try {
if (processInfo.pid == processId) {
processName = processInfo.processName;
return processName;
}
} catch (Exception e) {
e.printStackTrace();
}
}
return processName;
}