【发布时间】:2016-10-11 10:24:57
【问题描述】:
我正在尝试将 java 绑定到 Xamarin 表单项目,并且 jar 包含具有 $ 的类名以及具有 $ 的变量名。我收到“意外字符 $”错误。我试图通过编辑 metadata.xml 文件来解决它。看来我做错了,请检查以下条目,
对于包含 $ 的类名。我正在使用,
<attr path="/api/package[@name='com.wed.therace']/class[@name='CarDetails$']"
name="obfuscated">false</attr>
对于包含$的变量,
<attr path="/api/package[@name='com.wed.therace']/class[@name='CarDetails$']/fie ld[@name='machineParts$']"
name="obfuscated">false</attr>
正确的方法是什么?我是从https://developer.xamarin.com/guides/android/advanced_topics/binding-a-java-library/customizing-bindings/java-bindings-metadata得到这个的
提前致谢,
【问题讨论】:
-
我从未使用过 Xamarin,但它似乎使用了一些 XPaths,并且可能在内部使用了 XSL 转换,并且美元符号在 XSL 中具有特殊含义,因此请尝试使用
\$转义它。您提供的链接上也有一些说明,请参阅:developer.xamarin.com/guides/android/advanced_topics/… -
$代表 Java 中的匿名内部类。因此,您需要在此处使用全名,例如CarDetails${ClassName}。如果您可以上传MCVE,我可以帮助您调查这些问题。 注意:我编写了 Sergi 引用的部分文档