开发者社区 问答 正文

Android上有么有ots运行的例子

目前我在android导入lib包后在运行到
  OTSClient client = new OTSClient(endPoint, accessId, accessKey,    instanceName);
时总是报错

java.lang.NoSuchMethodError: No virtual method setDefaultMaxPerRoute(I)V in class Lorg/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager; or its super classes (declaration of 'org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager' appears in /system/framework/ext.jar)
     at com.aliyun.common.comm.HttpFactory.createThreadSafeClientConnManager(HttpFactory.java:106)
     at com.aliyun.common.comm.HttpFactory.creatHttpClient(HttpFactory.java:66)
     at com.aliyun.common.comm.DefaultServiceClient.<init>(DefaultServiceClient.java:39)
     at com.aliyun.openservices.ots.OTSClient.<init>(OTSClient.java:130)
     at com.aliyun.openservices.ots.OTSClient.<init>(OTSClient.java:92)
     at com.aliyun.openservices.ots.OTSClient.<init>(OTSClient.java:75)
     at com.allen.yun.ots.OTSSingleDataSample.main(OTSSingleDataSample.java:52)
     at com.allen.yun.ots.MainActivity.onCreate(MainActivity.java:47)
     at android.app.Activity.performCreate(Activity.java:6550)
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120)
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3102)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3248)
     at android.app.ActivityThread.access$1000(ActivityThread.java:197)
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1681)
     at android.os.Handler.dispatchMessage(Handler.java:102)
     at android.os.Looper.loop(Looper.java:145)
     at android.app.ActivityThread.main(ActivityThread.java:6872)
     at java.lang.reflect.Method.invoke(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:372)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)






阿里云什么时候能出移动上支持的demo,方便开发者呢?

展开
收起
祥云湾 2015-09-03 18:26:26 8520 分享 版权
阿里云 AI 助理回答

遇到这个错误,通常是因为您的Android项目中存在Apache HttpClient库的版本冲突。阿里云OTS SDK在早期版本中依赖于特定版本的Apache HttpClient库,而您的项目可能引入了不同版本的该库,导致方法找不到的问题。

为了解决这个问题,您可以尝试以下几种方法:

  1. 排除冲突: 在您的构建工具(如Gradle)中,尝试排除掉项目中其他依赖带来的Apache HttpClient库,只保留与OTS SDK兼容的版本。如果您使用的是Gradle,可以在依赖声明中加入exclude语句来排除冲突的库。

    implementation('com.aliyun.openservices:ots-android-sdk:您使用的版本') {
       exclude group: 'org.apache.httpcomponents', module: 'httpclient'
    }
    

    然后,手动添加一个与OTS SDK兼容的Apache HttpClient版本到您的依赖中。

  2. 更新OTS SDK: 检查阿里云OTS SDK是否有新版本发布,因为较新的版本可能已经解决了此类依赖问题或对Android环境有更好的支持。访问阿里云官方文档查看最新的SDK版本和集成指南。

  3. 使用阿里云提供的移动解决方案: 虽然直接在Android应用中使用OTS SDK可能会遇到一些挑战,但您可以考虑使用阿里云的其他服务作为数据存储,比如Mobile Push、MNS等,这些服务通常提供了更友好的移动开发支持和示例代码。

  4. 自定义HTTP客户端: 如果OTS SDK允许自定义HTTP客户端,尝试使用OkHttp或者Android自带的HttpURLConnection作为替代方案,这可能需要修改OTS SDK的初始化代码或寻找相关配置选项。

  5. 寻求官方支持: 如果上述方法都不能解决问题,建议直接联系阿里云技术支持或在阿里云开发者论坛发帖询问,获取针对您具体情况的帮助。同时,可以反馈给阿里云希望他们提供更完善的Android demo和更好的移动支持。

请根据您的具体情况进行尝试,并确保在进行任何更改时备份好原有项目,以便于回滚。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答标签:
问答地址: