Xamarin.Android 绑定友盟社会化分享组件
- 时间:
- 浏览:2
- 来源:极速快3_快3客户端下载_极速快3客户端下载
Xamarin.Android 绑定友盟社会化分享组件
2017-04-27 13:13 JoesWeek 阅读(...) 评论() 编辑 收藏Xamarin.Android 绑定友盟社会化分享组件
最近在开发博客园Android App的所以我还要用到友盟社会化分享组件,在github上搜了一下都那么 找到最新版本绑定好的项目,就另一方动手来绑定二个最新版本的友盟社会化分享组件(文章发布时的最新版为v6.4.3)。
下载友盟Android版SDK
友盟社会化分享组件 v6.4.3
本文只使用到微信,QQ,新浪微博,故只下载了精简版
创建绑定项目
创建步骤如图所示:
换成友盟SDK的jar包到绑定项目的Jars文件夹下
换成下载的友盟SDK项目中main,platforms,shareboard,shareview文件夹中的jar包到绑定项目的Jars文件夹下,如图示:
修改所有jar包的属性EmbeddedJar,如图示:
生成项目
完整性修改好所以我,生成项目,跳出一大堆错误,先别急,看一下有的是些有哪些错误。
好了,双击第二个错误,打开后发现UMImageMark类竟然继承的是另一方,这应该所以我错误的源头了。
并且 我们都我们都我们都 把UMImageMark继承的类改为Java.Lang.Object试试,ok,错误消失了。
并且 所以我改是那么 用的,是导致 这是导致 是生成好的代码了,要改就不到在源眼前 更改了,为什么会么会会 办呢? 打开Transforms文件夹下的Metadata.xml文件,在这里编写修改的代码就行了。
并且 为什么会么会会 修改UMImageMark类的继承类呢?按下面的最好的依据换成一行代码就搞懂了。
<attr path="/api/package[@name='com.umeng.social.tool']/class[@name='UMImageMark']" name="extends">Java.Lang.Object</attr>
并且 再生成一下,看有那么 效果。
里边的错误那么 了,说明成功了。所以我还是有好多错误。接下来看下二个错误。双击打开第二个错误,发现CancelEventArgs类是二个分布类再二个文件中趋于稳定,google一挂接现是是导致 IUMShareListener接口和IUMAuthListener接口趋于稳定相同的最好的依据,所以绑定的所以我会生成相同的类。好了,知道了是导致 就好办了,只是把其中二个接口中的最好的依据名字改一下就好了,代码如下:
<attr path="/api/package[@name='com.umeng.socialize']/interface[@name='UMAuthListener']/method[@name='onCancel']" name="managedName">OnAuthCancel</attr> <attr path="/api/package[@name='com.umeng.socialize']/interface[@name='UMAuthListener']/method[@name='onComplete']" name="managedName">OnAuthComplete</attr> <attr path="/api/package[@name='com.umeng.socialize']/interface[@name='UMAuthListener']/method[@name='onError']" name="managedName">OnAuthError</attr> <attr path="/api/package[@name='com.umeng.socialize']/interface[@name='UMAuthListener']/method[@name='onStart']" name="managedName">OnAuthStart</attr>
重新生成一下。
Good,成功了,只剩下二个错误了。
下二个错误一看就知道是是导致
修饰符的是导致
造成的,把继承类的你这俩
最好的依据修饰符protected改成public就都并且
了,代码:
<attr path="/api/package[@name='com.umeng.socialize.sina.params']/class[@name='BrowserRequestParamBase']/method[@name='onCreateRequestParamBundle' and count(parameter)=1 and parameter[1][@type='android.os.Bundle']]" name="visibility">public</attr>
重新生成一下。
好了,还有二个错误。错误提示说“UMShareAPI.InitThread”不实现继承的抽象成员“QueuedWork.UMAsyncTask.DoInBackground()”,打开发现是导致 有了DoInBackground最好的依据了,并且 那么 override关键字修饰。
为什么会么会会 办呢,不到新建二个UMShareAPI分布类来重写你这俩 最好的依据了。在Additions文件夹下新建二个UMShareAPI类,注意修改命名空间为Com.Umeng.Socialize,并且 重写DoInBackground最好的依据。是导致 所以我是导致 有了二个叫DoInBackground的最好的依据,所以还要把所以我的最好的依据名修改成DoInBackgrounds就搞懂了,代码:
namespace Com.Umeng.Socialize
{
public partial class UMShareAPI
{
public partial class InitThread : global::Com.Umeng.Socialize.Common.QueuedWork.UMAsyncTask
{
protected override Java.Lang.Object DoInBackground()
{
return DoInBackgrounds();
}
}
}
}
<attr path="/api/package[@name='com.umeng.socialize']/class[@name='UMShareAPI.InitThread']/method[@name='doInBackground' and count(parameter)=0]" name="name">DoInBackgrounds</attr>
保存后重新生成一下,搞懂了。
最后二个错误是类名和属性名冲突了,修改一下类名就行了。
<attr path="/api/package[@name='com.umeng.socialize.utils']/class[@name='Log']/field[@name='LOG']" name="name">Logs</attr>
重新生成。搞懂。大功告成。
========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========
最后
下载地址
Github
你这俩 项目中是我在使用Xamarin.Android的所以我另一方用到的绑定库,含晒 了友盟统计,友盟社会化分享,讯飞版本自动更新。
- 分类 Xamarin.Android
- 标签 C# , Xamarin.Android , 友盟分享