Android应用程序编译不生成包资源
当试图编译我的Xamarin.Android应用程序时,我得到了编译错误:
错误3文件“obj \ Debug \ android \ bin \ packaged_resources”不存在。 MyApp.UI.Droid
这个错误发生在我做了一些修改之后(添加了一些新的类 – 不记得它是什么)。 但是我没有更改任何项目设置,也没有删除obj
文件夹中的实际文件。
这个错误的原因是什么,我该如何解决这个问题?
一些可能有用的信息:
- 该项目是一个跨平台PCL项目 – 核心,Android和iOS项目
- 该项目使用MVVM Cross
我遇到了同样的问题。 确保您的资源文件不包含任何特殊字符
您可能遇到的实际错误是:
Invalid file name: must contain only [a-z0-9_.]
在Visual Studio中更改构build输出详细信息以查看更好的日志输出。
我有同样的问题。
然后我回顾了我的资源文件名。
解:
一个文件名称中使用“ – ” 。 (无效字符)
然后我换成“_” ( 下划线 )。
PS:
=>文件名:只能包含[a-z0-9_。]
您需要通过打开详细输出来减轻负担。 什么是停止生成packaged_resources?
在VS2013中select工具 – >选项 – >生成并执行,select详细诊断。
在VS2015中,相同的选项在工具 – >选项 – >项目和解决scheme – >生成并运行。
在我的情况下,它是一个Intentfilter的动作属性名称中的连字符,但select详细的输出将指向有问题的行。
按照以下步骤来确定问题:
1 – 在Visual Studio中:工具>选项>项目和解决scheme>构build和运行。
1.1 – 在下拉菜单中:MSBuild项目构build输出详细程度:>诊断。
1.2 – closures对话框。
2 – 查看>输出(Ctrl + W,O)。
3 – 运行构build或重build。
在输出中find这一行:
C:\ Program Files(x86)\ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets(1665,3):错误MSB6006:“aapt.exe”退出代码1。
刚刚在这个错误之上的是什么导致了错误。
我还发现,删除工具/预览频道和Android N和安卓SDK构build工具第24修订包,完成一个构build和工作。这是一个完整的新的便携式项目/ android / ios
另一种可能是您在安装的Android SDK构build工具中遇到问题。 对于我来说,当我删除了修订版24的包时,它工作。
来自Xamarin论坛 :
首先在你的android sdkpipe理器中去和预览工具。 如果你还没有安装它,但仍然得到相同的错误,然后去和卸载Android SDK构build工具修订24 。
我们这里的问题是,如果你的项目中有Appcombat,RecyclerView或类似的东西,那么这些库的rev是低于rev24。它们仍然是23.2.1,而不是rev.24。所以如果你安装了构build工具修订版24,并希望build立你的项目build设无法find你的图书馆的rev24资源包。
你可以自己去检查它在 SDKpipe理器中,然后select“Obsolete”,然后进入文件夹Extras,在那里你可以看到“Android Support Library(Obsolete)Rev 23.2.1。然后检查是否有Android支持库修订版24,在你的Extras文件夹中,不是吗?这就是问题所在,我们得到了更新的构build工具,并且必须等待库更新,那么我们都可以使用构build工具24!
所以只有更新到BuildTools Rev 24,当我们得到支持图书馆的更新,并有rev24图书馆。
基本上问题是资源文件名的特殊性。 在我的情况下,我不断收到错误“该文件”obj \ Debug \ android \ bin \ packaged_resources“不存在。 :
.. \ Resources \ drawable \ company-app-log.png在字符之间有– (连字符)是问题的根本原因。
在这里使用Xamarin Studio –
有时这是由AXML错误引起的。
如果您在首选项中打开详细/诊断,则可以search构build输出(或包装输出)以查找ERROR字样。
例如,某人在某些AXML行中签入了 –
机器人:文本=“东西”
和大写T是造成这个错误 –
资源/布局/ Somefile.axml(11):错误APT0000:找不到属性'文本'包'android'中的资源标识符
修复错误修复了原始信息。
首先,我build议你改变“展示出来”build设Xamarin看到真实的错误和细节,在我的情况
首先
接着 请确保你安装了你的NDK。 这是我的问题,
并请确保NDK目录也已设置
希望这可以帮助别人
我刚刚失去了7个小时的时间..你知道我做了什么?
Project.Droid -> Resources -> RightClick on the Resource.Designer.cs -> Delete
我做了fu **** n'作品! > <
编辑
Omg它回来了…为什么Windows有所有的时间这么多的错误…严重..
与我同样烦人的问题! 但是我find了一个解决scheme:仔细阅读这篇文章: https : //gxconsultancy.wordpress.com/2016/04/04/to-use-xamarin-or-not-to-us-xamarin/
简而言之:
-
确保至less有JDK 32位版本8 – 对于JRE,JDK安装套件包含在Oracle中;
-
设置您的项目使用Xamarindebugging器(右键单击您的项目,点击属性/安卓选项/包装/debugging器);
-
而现在最奇怪的是:删除应用程序/资源/绘图文件夹; 有一个工作的Xamarin项目,并将其“可绘制的”文件夹复制到不稳定的项目(通常有几个子文件夹,如drawable-hdpi,drawable-mdpi等)。
-
重build你的Android项目。
我有这个问题,所以我删除了构build工具24.0.0,我使用构build工具23.0.3和解决的问题。 尝试一下!
确保您的资源没有任何特殊字符或以数字开头
遇到同样的问题在VS 2015和Xamarin 7.2.0.7。 在我的情况下,这个问题突然发生了,并且发现了axml中元素名称错误导致的问题,用蒂亚戈上面的答案来描述。
所以我没有find与aapt.exe提到的行Tiago,但我然后我试图search关键字failed
的输出。 然后我发现有人告诉我有关margin
。 在android中,margin是使用android:layout_margin
设置的。 我玩元素,忘了把android:margin
,也就是为什么它发生如此多的成功运行后突然。 修复它,并build立成功。
在我的情况下,错误是由于我将清单中的版本号设置为1.0。 显然版本号必须是一个整数。
有同样的问题。 我的错误是在清单中:我有版本代码(版本号)设置为“1.0.0”,它是不允许的。 它只需要整数,所以我不得不恢复到“1”。
我混合了版本代码和版本名称。
对我来说,这个错误是由于在布局xml中有一个无效的属性值造成的。 我有
android:id="button"
改变它
android:id="@+id/button"
修复了错误。
不知道这是一个迟到的答案,但这个具体的错误信息发生的原因有两个:
-
(最有可能的情况):在你的布局文件中,你可能提到了一个资源(drawable / image)不正确。 例如,图像位于
mipmap
文件夹path中,但您已将其错误指向了drawable
文件夹path。 -
每个评论都有一个连字符或特殊字符,或者以数字开头。 但是,请注意,在这种特定情况下,您将主要看到
aapt.exe has stopped
或者appt.exe has exited with error code 1
错误。 我不知道你是否会得到obj\Debug\android\bin\packaged_resources not found
错误。 我的经验说上面的第1点是这样的。
在Windows上的Visual Studio 2017 Xamarin安卓项目中得到这个错误。 经过对资源文件的大量实验后,我发现文件夹长度和graphics文件在可绘制文件夹中的扩展名会影响到编译的结果!
drawable / abcde.png – 压缩好的
drawable / abcdef.png – 错误,“obj \ Debug \ android \ bin \ packaged_resources”不存在
如果将图像重命名为不带.png扩展名的文件,则无错误地编译。
花了很多时间,感到困惑: – /
我有同样的问题。 为了解决,我不得不从droid项目中删除所有nuget包,并重新安装xamarin.forms(必须在其他项目中使用相同的版本)。