友盟分享应该注意的问题,别掉入坑了

        现在很多的app项目中几乎都用到了第三分享,像shareSdk,Umeng 等,但是我们会发现在运行官网给的demo时,分享基本上都没问题,但是真正到自己集成的时候,你会发现各种bug,以下是个人在集成Umeng的时候遇到的几个问题:

   1、在新浪微博分享的时候,如果取消分享出现了如下问题:

        java.lang.ClassCastException: com.cttouzi.gezilicai.base.JbzApplication cannot be cast to android.app.Activity

       为什么会出现ClassCastException,似乎并没有哪个地方用到了JbzApplication ,后来去研究友盟sdk,发现 UMShareAPI是单例模式,初始化方法是public static UMShareAPI get(Context context);这个方法参数类型是Context, 所以传入的参数可以是Activity, 也可以是Applicaion的Context。 但在SDK内部使用的时候,有的地方做了Context到Activity的强转,如果UMShareAPI初始化方法里传的参数是Applicaion的Context, 就会出问题初始化的时候传入activity,果真就没问题了;


 2、qq分享分享成功了,但是点击返回应用时提示  “您取消了分享”

      出现这个问题,一般是你申请了qq的appId 和 key 后,在代码里进行设置

  //微信 appid appsecret
        PlatformConfig.setWeixin("wx6c2ed50bb9909f39", "2c4b9c35fdf2b02070f2464362e558c2");
        //新浪微博 appkey appsecret
        PlatformConfig.setSinaWeibo("3773785578", "9ea0fea7d9cd43eb1fbfcf9d22447bc6");
        // QQ和Qzone appid appkey
        PlatformConfig.setQQZone("1105835250", "Td78bpHQr7ZfCQv1");

 

   但是别忘了,在Manifest.xml里也还有一处需要更改(代码中标红的,也需要改成你自己申请的appId)

     <activity
            android:name="com.tencent.tauth.AuthActivity"
            android:launchMode="singleTask"
            android:noHistory="true">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data android:scheme="tencent1105835250" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.tencent.connect.common.AssistActivity"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

 
 3、QQ分享失败(如图)

         

         错误原因:分享链接错误

         可能有的开发者的应用还没有上线,所以分享的链接是本地搭建的服务器地址,比如:"http://192.168.1.132:8001/app“ 就是因为这个分享链接的问题,导致分享到qq空间出现异常。如果把这个链接换成: ”http://www.baidu.com“,分享就成功了。

        总结:分享链接最好用带域名的链接,不要使用带ip地址的链接

  4、关于微信回调WXEntryActivity

       这里一定要特别注意路劲的问题,你需要在主目录下新建一个wxapi,然后将该回调activity放入其中,完整的路径:

        “com.cttouzi.gezilicai.wxapi.WXEntryActivity.java”

        关于代码如下:

 public class WXEntryActivity extends WXCallbackActivity {
        @Override
        public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
            super.onCreate(savedInstanceState, persistentState);
        }
        @Override
        public void onReq(BaseReq req) {
            super.onReq(req);
        }
        //微信回调
        @Override
        public void onResp(BaseResp resp) {   //分享之后的回调
            switch (resp.errCode) {
                case BaseResp.ErrCode.ERR_OK: //正确返回
                    //Toast.makeText(this, "微信分享成功回调了111", Toast.LENGTH_SHORT).show();
                    break;
            }
            super.onResp(resp);
        }
    }

    5、.so文件放置的路径不正确,这个问题一般容易出现在第一次集成Umeng

        习惯使用eclipse的人通常会把jar包和.so文件直接拷贝到libs目录下,但是Android studio 比较不同,通常情况下我们会把jar包放在libs 目录下,但是一般会在主目录下新建 jniLibs,然后把需要.so文件放在这里,效果如图:

                


         但是需要注意的是,需要在build 文件下配置下:

       android {
              sourceSets.main{
                       jniLibs.srcDirs = ['src/main/jniLibs'];
                            }
                }

         好了,以上是我再集成的时候遇到的几个问题,欢迎大家一起探讨!!!


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值