在Java Bindings Library Project中重命名命名空间 - 生成器错误

时间:2015-06-24 13:22:48

标签: xamarin

按照http://developer.xamarin.com/guides/android/advanced_topics/java_integration_overview/binding_a_java_library_(.jar)/api_metadata_reference/#Metadata.xml_Transform_File

的指示行事
<attr path="/api/package[@name='com.mycompany.myapi]" name="managedName">MyCompany.MyAPI</attr>

In this example, a Java library with a package 
com.mycompany.myapi is mapped to the .NET namespace MyCompany.MyAPI. 

我正在尝试重命名我创建的绑定库项目的命名空间。在尝试进行任何转换之前,项目已成功编译。查看生成的obj/debug/api.xml文件,前几行显示

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<api>
<package name="android_serialport">
...

所以要将名称空间从android_serialport更改为MyCompany.Ports.IO,我正在编辑Transofrms/Metadata.xml

<metadata>
  <attr path="/api/package[@name='android_serialport]" name="managedName">MyCompany.Ports.IO</attr>
</metadata>

然而,通过这个添加的行我得到一个相当神秘的错误:

C:\ Program Files(x86)\ MSBuild \ Xamarin \ Android \ Xamarin.Android.Bindings.targets(5,5):错误MSB6006:&#34; generator.exe&#34;退出,代码为-532462766。(MSB6006)(SerialPort)

我尝试创建绑定的库是在Android Studio中创建的,用于生成aar。如果没有添加转换线,一切都会编译,我可以毫无问题地引用它。

任何人都有绑定库转换失败的经验吗?

1 个答案:

答案 0 :(得分:1)

错误消息来自绑定生成器。我无法在错误代码上找到任何文档,但由于编辑过的Transforms/Metadata.xml文件中存在拼写错误而被抛出:

path="/api/package[@name='android_serialport]"

应该是

path="/api/package[@name='android_serialport']"

请注意@name末尾缺少的'。错误消息不会导致您这样做太糟糕了。