首页 / 浏览问题 / 移动GIS / 问题详情
imobile在线试用许可报错
34EXP 2021年10月22日

IMOBILE 10I  按照示例编写在线试用许可代码后,运行报错

报错信息如下:

E/AndroidRuntime: FATAL EXCEPTION: Thread-5
    Process: com.wavenet.sewerage, PID: 14043
    java.lang.IllegalStateException: Please call com.supermap.data.Environment.initialization() firstly
        at com.supermap.data.Environment.getLicenseStatus(Environment.java:1105)
        at com.supermap.data.CloudLicenseManager$1.run(CloudLicenseManager.java:136)

按报错提示加上Environment.initialization(this)后报错信息变成了:

E/AndroidRuntime: FATAL EXCEPTION: Thread-6
    Process: com.wavenet.sewerage, PID: 29056
    java.lang.NoSuchMethodError: No virtual method execute(Lorg/apache/http/client/methods/HttpUriRequest;)Lorg/apache/http/client/methods/CloseableHttpResponse; in class Lorg/apache/http/impl/client/DefaultHttpClient; or its super classes (declaration of 'org.apache.http.impl.client.DefaultHttpClient' appears in /system/framework/org.apache.http.legacy.jar)
        at com.supermap.data.CloudLicenseManager.a(CloudLicenseManager.java:196)
        at com.supermap.data.CloudLicenseManager.access$400(CloudLicenseManager.java:67)
        at com.supermap.data.CloudLicenseManager$1.run(CloudLicenseManager.java:167)

而且许可也没有生效。

示例代码如下:

String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
Environment.setLicensePath(rootPath + "/SuperMap/License");
CloudLicenseManager cloudLicM = CloudLicenseManager.getInstance(this);
String username = "您的Online用户名";
String password = "您的Online登陆密码";
cloudLicM.setLoginCallback(new CloudLicenseManager.LicenseLoginCallback() {
@Override
public void loginSuccess(LicenseStatus arg0) {
// TODO Auto-generated method stub
showMessage("云许可登陆成功: " + arg0.toString());
}
@Override
public void loginFailed(String arg0) {
// TODO Auto-generated method stub
showMessage("云许可登陆失败: " + arg0);
}
});
cloudLicM.login(username, password);

1个回答

您好,报错信息是因为http请求报错,您那边可以Androidmainfest.xml文件中找到application节点,设置以下参数:

9,232EXP 2021年10月22日
这个包需要单独下载导入么?加了这一节后好像也没起作用额
您那边可以把我们的jar都添加到工程里面,如果还报这个错误,就去网上下载一个http的jar包添加到工程里面
请问下这个httpclient需要啥版本的?我试了好几个都不行,都是找不到CloseableHttpResponse。

或者说在超图示例里的lib里,具体需要添加哪一个进来?
可以在你电脑下载的sdk里面找到这个路径,...platforms\android-26\optional,把这里面的http jar包引用到工程里面

还是一样不行额

第一个回复的参数加了吗
加过了啊

您那边看下这个解决方案呢:https://blog.csdn.net/sserf/article/details/88687561

能提供个能用的org.apache.http.legacy.jar包吗,我试了好几个,里面根本没有CloseableHttpResponse这个类啊
...