<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。如果没有添加转换线,一切都会编译,我可以毫无问题地引用它。
任何人都有绑定库转换失败的经验吗?
答案 0 :(得分:1)
错误消息来自绑定生成器。我无法在错误代码上找到任何文档,但由于编辑过的Transforms/Metadata.xml
文件中存在拼写错误而被抛出:
path="/api/package[@name='android_serialport]"
应该是
path="/api/package[@name='android_serialport']"
请注意@name
末尾缺少的'。错误消息不会导致您这样做太糟糕了。