Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Xamarin 9-Patch in Library解决方案&;通过TeamCity NuGet引用 配置_Android_Xamarin_Nuget_Teamcity_Nine Patch - Fatal编程技术网

Android Xamarin 9-Patch in Library解决方案&;通过TeamCity NuGet引用 配置

Android Xamarin 9-Patch in Library解决方案&;通过TeamCity NuGet引用 配置,android,xamarin,nuget,teamcity,nine-patch,Android,Xamarin,Nuget,Teamcity,Nine Patch,在库解决方案中有一个Android库项目(我们称之为Core.Droid),它有一个9补丁的图像,如该项目的屏幕截图所示 此解决方案是使用TeamCity构建的,因此该项目是一个NuGet包 另一个解决方案包含一个Android项目(我们称之为DroidApp),并引用NuGet包Core.Droid 问题 构建DroidApp时(VS2013),显示以下编译错误: 9-patch image C:\[path to project]\obj\Debug\__library_projects

在库解决方案中有一个Android库项目(我们称之为Core.Droid),它有一个9补丁的图像,如该项目的屏幕截图所示

此解决方案是使用TeamCity构建的,因此该项目是一个NuGet包

另一个解决方案包含一个Android项目(我们称之为DroidApp),并引用NuGet包Core.Droid


问题 构建DroidApp时(VS2013),显示以下编译错误:

9-patch image C:\[path to project]\obj\Debug\__library_projects__\Core.Droid\library_project_imports\res\drawable-hdpi\textfield_activated_halo_light.9.png malformed
为了证明问题在NuGet包过程中的某个地方。。。如果我通过右键单击DroidApp中的引用,单击添加引用…,然后在引用管理器-DroidApp窗口中的浏览选项卡上单击浏览,直接引用Core.Droid项目。。。并在Core.Droid项目的bin\debug位置选择Core.Droid.dll,则DroidApp将编译并运行,不会出现任何编译或运行时错误


问题 当Core.DroidAndroid库项目包含9个补丁图像时,如何让Core.DroidNuGet包在DroidApp中工作

注意:正常图像工作正常,只有9个补丁图像会导致此问题


当前解决方法 如果我们将9块图像放入DroidApp中,那么一切都是正常的。但是,这使得无法在一个公共库项目的多个应用程序之间共享图像,因此我们在多个项目中拥有相同的图像

其他信息

我在诊断生成日志中看到:

2>AAPT : error : 9-patch image C:\Workspace\DroidApp\obj\Debug\__library_projects__\Core.Droid\library_project_imports\res\drawable-mdpi\textfield_activated_holo_light.9.png malformed.
2>         No marked region found along edge. (TaskId:145)
2>         Found along top edge. (TaskId:145)
然而,我认为这是问题的一个症状,不一定是原因,因为项目中包含的映像没有格式错误…事实上,如果我直接引用项目(Core.Droid),而不是使用NuGet包,它会工作的。但是,如果我浏览到错误中的路径,那么图像的格式确实不正确(9-patch边框被删除)。所以问题是…这是怎么发生的?为什么当它是一个NuGet项目时,它会去掉边界?我知道如果我从一个.apk抓取图像,那么9-patch边框实际上会被删除…因此,在构建NuGet包时,可能在构建过程中的某个地方会发生这种情况…而当项目作为直接引用包含时,该步骤不会发生…有没有办法防止该步骤在NuGet构建中发生

附加信息二


如果我在本地机器上构建NuGet包并使用该NuGet包,那么它就会工作。只有在TeamCity的NuGet软件包中,9patch才不起作用。

只是澄清一下,解决方案是更新Xamarin。Android 4.18作为4.18.1似乎有一个解决方案:

这也解决了