我已阅读Xamarin's documentation on this,并注意到有关the Xamarin Forums的讨论。要么丢失了某些东西,要么我错过了一些东西,因为在我的情况下这一切都不起作用,这是:
我的环境是OSX。我有一个用Java创建的AAR,需要提供这个作为Xamarin开发人员使用的DLL。我在Xamarin Studio中创建了一个Java绑定库,它生成了一个DLL,但是我的参数是被激活的(例如p0等)。我可以无休止地映射Metadata.xml中的每个参数但是...说它不是这样的!我想使用我的JavaDoc来完成繁重的工作,并通过添加以下内容来更改.csproj,如Xamarin的文档中所示:
...
<PropertyGroup>
<Java7DocPaths>JavaDocs\myLib</Java7DocPaths>
</PropertyGroup>
..
我的JavaDocs位于.csproj文件的兄弟文件夹中(此处未显示myLib子文件夹):
我清理并重建了Java Binding项目,令我失望的是,尽管我付出了努力,仍然使用了参数名称。如何在OSX上使用Xamarin Studio实现此功能?
感谢SushiHangover。我用/ verbosity运行xbuild:debug没有错误,也没有警告。当我使用/ verbosity时:诊断它为JarToXml任务输出JavaDocs:{0},我正在探索可能导致这种情况的原因。
答案 0 :(得分:2)
您没有指定JARTOXML
目标的ExportJarToXml
任务产生的警告。如果你不知道:
cd {YourJavaBindingLibraryDirectory}
rm -Rf bin obj # Remove build artifacts so all tasks all executed
xbuild /verbosity:debug # /verbosity:diagnostic if needed
注意:如果您没有看到任何警告,请尝试使用verbosity:diagnostic
在输出中搜索JARTOXML
任务...
我看到的头号问题是:
JARTOXML: warning J2X8001: Couldn't access javadocs at specified docpath. Continuing without it...
仅供参考:此示例使用bluejamesbond/TextJustify-Android,一个非常棒的文本对齐库; - )
首先,仔细检查JavaDocPaths
中.csproj
的关系:
.csproj
包含:
<PropertyGroup>
<JavaDocPaths>JavaDocs/textjustify-android-2.1.6-javadoc</JavaDocPaths>
</PropertyGroup>
Equals Project dir:
TextJustifyAndroid.csproj
~~~~
├── JavaDocs
│ ├── textjustify-android-2.1.6-javadoc
~~~~
注意:这与绑定项目.csproj
位置相关,不是解决方案。
下一步,确保您已扩展JavaDoc jar并且它是原始结构。
以下是我个人构建项目树的方式:
├── Jars
│ └── textjustify-android-2.1.6.aar
├── JavaDocs
│ └── textjustify-android-2.1.6-javadoc.jar
我将* .javadoc.jar复制到我的JavaDocs
子目录中,然后展开它们(我使用unzip
,但保留dir结构的任何工具都很好)
unzip textjustify-android-2.1.6-javadoc.jar -d textjustify-android-2.1.6-javadoc
这导致:
├── Jars
│ └── textjustify-android-2.1.6.aar
├── JavaDocs
│ ├── textjustify-android-2.1.6-javadoc
│ │ ├── META-INF
│ │ │ └── MANIFEST.MF
│ │ ├── allclasses-frame.html
│ │ ├── allclasses-noframe.html
│ │ ├── com
│ │ │ └── bluejamesbond
│ │ │ └── text
│ │ ├── script.js
│ ~~~~~~~~~~~~~~~~~~~~~~~~
│ │ ├── serialized-form.html
│ │ └── stylesheet.css
│ └── textjustify-android-2.1.6-javadoc.jar
仅供参考:我保留目录名称中的版本以帮助进行版本控制,因为我可能正在使用同一项目中同一.aar|.jar
的多个版本...但您可以重命名它,只需确保它匹配.csproj
中的内容。
运行xbuild /verbosity:debug
会导致ExportJarToXml
目标没有产生警告:
~~~~
Target ExportJarToXml:
Tool /usr/bin/java execution started with arguments: -XX:-UseSplitVerifier -jar /Library/Frameworks/Xamarin.Android.framework/Versions/Current/lib/mandroid/jar2xml.jar --jar=.../Justify/TextJustifyAndroid/obj/Debug/library_project_jars/classes.jar --ref=/Users/sushi/Library/Developer/Xamarin/android-sdk-macosx/platforms/android-22/android.jar --out=.../Justify/TextJustifyAndroid/obj/Debug/api.xml --javadocpath=.../Justify/TextJustifyAndroid/JavaDocs/textjustify-android-2.1.6-javadoc
~~~~