Xamarin.Android绑定Java Jar后如何查找MainActivity.cs所需的using指令
查找绑定Jar对应正确Using指令的操作方法
通用查找逻辑
- 最准确的校验方式:打开绑定库项目的生成输出目录(一般路径为项目下
bin/[Debug/Release]/[目标Android框架版本]),找到绑定流程生成的.dll程序集,用dnSpy、ILSpy这类.NET反编译工具打开,展开左侧的命名空间节点,所有公开类型所属的命名空间,就是你需要在业务代码中引入的Using内容,全程不会出现推导偏差,结果和实际可引用的路径完全一致。 - 快速本地校验方式:直接查看绑定项目
obj目录下对应目标框架的generated子目录,这里存放的是Xamarin自动生成的绑定C#代码,每个文件顶部的namespace声明,就是对应类所属的实际命名空间,不需要等到程序集编译完成再翻查文件。 - 掌握固定转换规则减少重复查找:Xamarin.Android绑定流程会逐段将Java包名转换为C#命名空间,默认会把每一段包名的首字母大写,比如Java端
com.squareup.picasso的包结构,绑定后对应C#命名空间就是Com.Squareup.Picasso,和官方文档的示例规则完全匹配。
针对MultiSlider绑定的具体参考
- 本次集成的MultiSlider库,Java侧核心类所属的包名为
io.apptik.widget.multislider,按照默认转换规则,绑定生成的对应C#命名空间为Io.Apptik.Widget.Multislider,在MainActivity.cs等业务代码文件中引入该命名空间,即可正常调用绑定生成的MultiSlider控件相关API。 - 如果在绑定流程中手动修改过绑定项目下
Metadata.xml的命名空间重写规则,需要以自定义配置后的最终命名空间为准,不要直接套用默认规则的结果。 - 常见踩坑点:不要把项目属性里设置的程序集名称、根命名空间配置和实际可引用的命名空间混淆——程序集名称和代码实际使用的命名空间没有强制绑定关系,必须以类型实际所属的命名空间为准,否则会直接出现类型找不到的编译错误。
内容的提问来源于stack exchange,提问作者RBSbwe
相关产品推荐
相关产品推荐

