博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Xamarin改写安卓Residemenu控件
阅读量:6656 次
发布时间:2019-06-25

本文共 2772 字,大约阅读时间需要 9 分钟。

1.下载最新的Residemenu安卓代码。用intellig打开,重新编译一下。

2.需要将其中的Residemenu,用gradle编译生成*.aar文件格式。

2.1 下载gradle,配置环境变量,包括java、androrid_home、gradle环境变量。

     GRADLE_HOME   C:\gradle-2.7-bin\gradle-2.7

     ANDROID_HOME C:\Users\Administrator\AppData\Local\Android\android-sdk

    Path  %GRADLE_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;

2.2 在Residemenu项目文件中有,也有了build.gradle文件。在命令行中,转到Residemenu目录下,执行gradle build命令,就可以在ResideMenu\build\outputs\aar下,产生两个对应的aar文件。

3.将aar文件放到xamarin jar binding项目中,并且要设置生成操作为LibraryProjectZip。其中,Residemenu应用了nineoldandroids-library-2.4.0.jar,所以在binding项目中,会有一些错误。需要在Metadata.xml中,将错误排除。以后在binding安卓项目时,对错误的都先可以采用排除的方式,否则要进行调试修改很费时间。

    修改metadata.xml,将错误的都先移除掉

<metadata>  

<remove-node path="/api/package[@name='com.nineoldandroids.animation']/class[@name='AnimatorSet']/method[@name='setDuration' and count(parameter)=1 and parameter[1][@type='long']]" />

  <remove-node path="/api/package[@name='com.nineoldandroids.animation']/class[@name='ValueAnimator']/method[@name='setDuration' and count(parameter)=1 and parameter[1][@type='long']]" />   <remove-node path="/api/package[@name='com.nineoldandroids.animation']/class[@name='AnimatorSet']" />   <remove-node path="/api/package[@name='com.nineoldandroids.animation']/class[@name='ValueAnimator']" />

  <remove-node path="/api/package[@name='com.nineoldandroids.animation']/class[@name='PropertyValuesHolder.FloatPropertyValuesHolder']/constructor[@name='PropertyValuesHolder.FloatPropertyValuesHolder' and count(parameter)=2 and parameter[1][@type='java.lang.String'] and parameter[2][@type='com.nineoldandroids.animation.FloatKeyframeSet']]"/>

  <remove-node  path="/api/package[@name='com.nineoldandroids.animation']/class[@name='PropertyValuesHolder.IntPropertyValuesHolder']/constructor[@name='PropertyValuesHolder.IntPropertyValuesHolder' and count(parameter)=2 and parameter[1][@type='java.lang.String'] and parameter[2][@type='com.nineoldandroids.animation.IntKeyframeSet']]" />   <remove-node path="/api/package[@name='com.nineoldandroids.animation']/class[@name='PropertyValuesHolder.IntPropertyValuesHolder']/constructor[@name='PropertyValuesHolder.IntPropertyValuesHolder' and count(parameter)=2 and parameter[1][@type='com.nineoldandroids.util.Property'] and parameter[2][@type='com.nineoldandroids.animation.IntKeyframeSet']]" />

  <remove-node path="/api/package[@name='com.nineoldandroids.animation']/class[@name='PropertyValuesHolder.FloatPropertyValuesHolder']/constructor[@name='PropertyValuesHolder.FloatPropertyValuesHolder' and count(parameter)=2 and parameter[1][@type='com.nineoldandroids.util.Property'] and parameter[2][@type='com.nineoldandroids.animation.FloatKeyframeSet']]" />  

</metadata>

这样就可以编译成功了。

4.在Xamarin项目中就可以引用binding后的dll使用了。

 

 

 

转载于:https://www.cnblogs.com/gjtlovecwx/p/4891551.html

你可能感兴趣的文章
MyBatis(二)-----注解方式crud
查看>>
navicat连接腾讯云MySQL
查看>>
嵌入式Linux加快物联网开发速度的方案研究
查看>>
java程序员如何拿到2万月薪
查看>>
redis常用命令总结
查看>>
ActiveMQ —— <一> 概述
查看>>
SylixOS内核打印调试方法.
查看>>
加号+和减号-
查看>>
详解Mysql分布式事务XA(跨数据库事务)
查看>>
移动端概述和hybird模式、响应式布局
查看>>
2018年,成功的创业公司网站是怎么设计的?
查看>>
MySQL数据库开发规范
查看>>
安装elasticsearch
查看>>
MySQL 创始人:写代码比打游戏还爽,程序员应该多泡开源社区
查看>>
构造器内部的多态方法的行为
查看>>
Android Studio库Module引用aar文件
查看>>
008-tar,gzip,bzip2的使用
查看>>
静态单元格
查看>>
浅谈 MySQL 集群高可用架构
查看>>
两个路径与四个centos7命令
查看>>