如果你还没有使用,那么我劝你还是换个别的吧,比如说Mob的ShareSDK。
讲真,友盟真的很鶸,问题一大堆,问题是你很清楚哪里有问题但还半天解决不了,因为官网上的文档内容没一点卵用。
先去官网注册,下载SDK(可以看截图日期,这是最新版的)
下面是下载的SDK文件结构
1.push那个文件夹请忽略,因为我下载时候一块下载了推送。
2.common这个文件夹请注意!!!里面有个umeng-common-1.4.4.jar包,需要拖入项目libs(记得同步项目)的,否则会报错。
java.lang.NoClassDeFoundError:Failed resolution of:Lcom/umeng/commonsdk/statistics/common/DeviceConfig
3.share文件
main————为核心包,里面的JAR包和RES文件都复制到项目
platforms————为平台包,里面的JAR包和RES文件都复制到项目
shareboard————分享面板包,如果不使用,可以不拷贝。(前面这是官方说的话,扯蛋)但是umeng_social_shareboard.jar 必须要,不然报错。
shareview————分享编辑页,如果没有使用新浪精简版,豆瓣人人腾讯微博,可以不使用该文件夹(我下载的精简版,只有QQ,微信,微博,所以没用)
debug.keystore————这个要放在项目的
signingConfigs { debug { storeFile file('debug.keystore') storePassword "android" keyAlias "androiddebugkey" keyPassword "android" } }
然后,因为微信回掉比较特殊,先要如图创建一个回掉Activity
注意,要放在wxapi这个指定目录下,名字WXEntryActivity,继承WXCallbackActivity
wxapi放在包下一级目录。
接着配置清单文件。权限什么的还是不要复制文档了,鶸,啥权限都配啊!
傻逼文档!复制文档过来请注意AuthActivity,AssistActivity包名。
具体路径可以看导入的QQJar包里面。
<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="tencent1106727511注意:格式是tencent+APPID,前面tencent不能少" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize"/>
<activity
android:name=".wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<meta-data
android:name="UMENG_APPKEY"
android:value="填自己的"/>·
接着,我们需要在自己的MyApplication文件中配置
//初始化友盟SDK
UMShareAPI.get(this);//初始化sd
//开启debug模式,方便定位错误,具体错误检查方式可以查看
//http://dev.umeng.com/social/android/quick-integration的报错必看,正式发布,请关闭该模式
Config.DEBUG = true;
//微信
PlatformConfig.setWeixin("wxa236a67eded7a34a", "1203eb81fdf192b301f813f53f29492f");
// //新浪微博(第三个参数为回调地址)
// PlatformConfig.setSinaWeibo("3111100954", "04b48b094faeb16683c32111124ebdad",
// "http://sns.whalecloud.com/sina2/callback");
//应用宝开放平台 APP ID APP KEY
PlatformConfig.setQQZone("1106727511", "r7nD6XTBi98wRPYI");
QQ,微博回掉需要。写在分享那个页面。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//QQ,微博回掉需要
UMShareAPI.get(ShareActivity.this).onActivityResult(requestCode, resultCode, data);
}
最后,具体分享代码
//----------------以下开始为具体分享代码----------------------
//连接地址
UMWeb web = new UMWeb(webUrl);
web.setTitle(title);
//描述
web.setDescription(description);
if (TextUtils.isEmpty(imageUrl)) {
//本地缩略图
web.setThumb(new UMImage(activity, imageID));
} else {
//网络缩略图
web.setThumb(new UMImage(activity, imageUrl));
}
new ShareAction(activity)
.setPlatform(SHARE_MEDIA.QQ) //SHARE_MEDIA.等等
.withMedia(web)
.setCallback(new UMShareListener() {
@Override
public void onStart(SHARE_MEDIA share_media) {}
@Override
public void onResult(final SHARE_MEDIA share_media) {}
@Override
public void onError(final SHARE_MEDIA share_media, final Throwable throwable) {}
@Override
public void onCancel(final SHARE_MEDIA share_media) {}}).share();