- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在项目构建期间经常遇到问题,其中生成了 Resource.Designer 但不再编译。我的搜索引擎显示我不是唯一遇到此问题的人,但我也没有找到任何可靠的“解决方案”来解决此问题。
例如,现在我有一个工作正常的项目,但如果我添加对 NuGet 库(我创建的)的引用,则应用程序将不再编译,因为 Resource.Designer.cs 中有大量错误.
在另一个项目中,我只是升级了 Xamarin Forms,现在我无法再编译,同样是由于 Resource.Designer.cs 中的大量错误。
当然,眼前的问题是“我如何修复这些项目中的错误”,但我真的想了解这里发生的根本问题。是什么导致 Resource.Designer 生成和重新生成?使用什么算法来决定将哪些项目放入该文件?为什么我们经常以生成的文件最终无法实际编译而告终?为什么它没有获得这些项目所需的引用?
我真的很想从根本上理解这一点,这样一旦我克服了当前让我头疼的事情,我就可以在将来再次出现时避免它(而且我肯定会再次出现) .
最佳答案
Resource.Designer.cs
与 R.java
同义在安卓系统中。哪个当然是由生成的常量引用的应用程序资源 Resource ID
.
这些项目通常在您的 Xamarin.Android
中定义的 .csproj
通过:
<AndroidResgenClass>Resource</AndroidResgenClass>
(这可能已经过时了)
或
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
(当前)
这是 Android Build
的一部分aapt
的过程工具将为项目中定义的每个资源生成相应的常量资源 ID(res/
- Android,Resources/
- Xamarin.Android)。然后将它们处理成二进制形式并嵌入到 .apk
中。 .因此 Resource.designer.cs
成功后生成 aapt
.
然后它进一步定义了一个 Resource
在特定的 Resource Type:
http://code.google.com/android/reference/android/R.html
Since
aapt
is called in the Android Build tooling, it is highly recommended to not manually invoke it unless you understand the complete Android build process.
https://developer.android.com/studio/command-line/index.html
就“算法”而言,除了简单地映射 Resource ID
之外,我认为它并没有那么复杂。到上面定义的资源。在 Merging Resources
的意义上存在一些复杂性在一个项目中。 例如一个图书馆项目 -> 你的应用项目:
The build tools merge resources from a library module with those of a dependent app module. If a given resource ID is defined in both modules, the resource from the app is used.|
If conflicts occur between multiple AAR libraries, then the resource from the library listed first in the dependencies list (toward the top of the dependencies block) is used.
To avoid resource conflicts for common resource IDs, consider using a prefix or other consistent naming scheme that is unique to the module (or is unique across all project modules).
https://developer.android.com/studio/projects/android-library.html#Considerations
考虑到大多数人的问题 Resource.designer.cs
,它们通常来自理解实际第三方的角度 Resources
来自以及如何支持它们。以下是我个人使用的一些技巧:
<TargetFrameworkVersion>
MSBuild 属性。我的一位同事有一篇关于这个因素经得起时间考验的精彩博文:http://redth.codes/such-android-api-levels-much-confuse-wow/
Resource
在哪里来自。它是否来自官方 NuGet 包? Resource 是什么时候引入到 Android 框架中的? (主要用于 Material Design 项目)。例如,如果我有关于 colorPrimary
的错误消息, 我可能会检查它是在什么 API 中引入的:
Added in API level 21
https://developer.android.com/reference/android/R.attr.html#colorPrimary
因此我们现在知道我们至少需要 API 21+ 才能使用此项目。
Resources
它试图给你的项目。此外,您可以查看 cache
各自的 .aar
并查看它的 res/
文件夹。这对于像 Android Support
这样的较大绑定(bind)非常有用。/Google Play Services
那些。对于较小的项目,请查找 /res
反编译后的字符串 .dll
例如让我们来看看com.android.support:appcompat-v7:24.2.1
:
首先我们需要找到我们机器上的缓存:
AppData\Local\Xamarin\Xamarin.Android.Support.v7.AppCompat\24.2.1\embedded\res
(如果你在 OSX 上卡在这里,我之前写了一篇关于在这里找到这些路径的指南 - https://developer.xamarin.com/guides/android/troubleshooting/resolving-library-installation-errors/)
所以我们现在可以查看所有相应的 Resources
这个图书馆正试图给我们。
Resource.designer.cs
从他们的项目文件。 aapt
之后过程完成,它将生成一个新的,否则将在 aapt
上失败.您可以确定该步骤是否通过(即检查主项目 Resources
文件夹中是否有新生成的 Resource.designer.cs
文件,以便您可以将其重新包含到您的项目中)。关于android - 有人可以真正解释 Resource.Designer.cs 的工作原理吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40451758/
缓冲区溢出问题是众所周知的。因此,我们有幸使用标准库函数,例如 wcscat_s()。 Microsoft 的好心人已经创建了类似的安全字符串函数,例如 StringCbCat()。 但是我遇到了一个
HTTP缓存相关的问题好像是前端面试中比较常见的问题了,上来就会问什么cache-control字段有哪些,有啥区别啥的。嗯……说实话,我觉得至少在本篇来说,HTTP缓存还算不上复杂,只是字段稍
代理,其实全称应该叫做代理服务器,它是客户端与服务器之间得中间层,本质上来说代理就是一个服务器,在HTTP的链路中插入的一个中间环节,就是代理服务器啦。所谓的代理服务就是指:服务本身不生产内容,
我们在前两篇的内容中分别学习了缓存和代理,大致了解了缓存有哪些头字段,代理是如何服务于服务器和客户端的,那么把两者结合起来,代理缓存,也就是说代理服务器也可以缓存,当客户端请求数据的时候,未必一
在前面的章节,我们把HTTP/1.1的大部分核心内容都过了一遍,并且给出了基于Node环境的一部分示例代码,想必大家对HTTP/1.1已经不再陌生,那么HTTP/1.1的学习基本上就结束了。这两
我们前一篇学习了HTTP/2,相比于HTTP/1,HTTP/2在性能上有了大幅的改进,但是HTTP/2因为底层还是基于TCP协议的,虽然HTTP/2在应用层引入了流的概念,利用多路复用解决了队头
前面我们花了很大的篇幅来讲HTTP在性能上的改进,从1.0到1.1,再到2.0、3.0,HTTP通过替换底层协议,解决了一直阻塞性能提升的队头阻塞问题,在性能上达到了极致。 那么,接下
上一篇噢,我们搞明白了什么是安全的通信,这个很重要,特别重要,敲黑板!! 然后,我们还学了HTTPS到底是什么,以及HTTPS真正的核心SSL/TLS是什么。最后我们还聊了聊TLS的实
经过前两章的学习,我们知道了通信安全的定义以及TLS对其的实现~有了这些知识作为基础,我们现在可以正式的开始研究HTTPS和TLS协议了。嗯……现在才真正开始。 我记得之前大概聊过,当
这一篇文章,我们核心要聊的事情就是HTTP的对头阻塞问题,因为HTTP的核心改进其实就是在解决HTTP的队头阻塞。所以,我们会讲的理论多一些,而实践其实很少,要学习的头字段也只有一个,我会在最开始
我们在之前的文章中介绍HTTP特性的时候聊过,HTTP是无状态的,每次聊起HTTP特性的时候,我都会回忆一下从前辉煌的日子,也就是互联网变革的初期,那时候其实HTTP不需要有状态,就是个浏览页面
前面几篇文章,我从纵向的空间到横向的时间,再到一个具体的小栗子,可以说是全方位,无死角的覆盖了HTTP的大部分基本框架,但是我聊的都太宽泛了,很多内容都是一笔带过,再加上一句后面再说就草草结束了。
我的问题确实很简单,是否应该对适配器(设计模式)类进行单元测试,以及如何进行测试? 例子: 我想用PHP创建一个ClientSocket类,它是fsockopen,fread,fwrite的适配器。
目前,我在 PHP 脚本中使用此查询: SELECT * FROM `ebooks` WHERE `id`!=$ebook[id] ORDER BY RAND() LIMIT 125; 数据库最多大约
我们都知道可以使用 GetCustomAttributes 方法查询程序集的属性。我想用它来识别我的应用程序的扩展模块。但是,为了避免加载每个程序集,我更喜欢防御性方法: 使用 Assembly.Re
我正在移植一个非常大的代码库,我在处理旧代码时遇到了更多困难。 例如,这会导致编译器错误: inline CP_M_ReferenceCounted * FrAssignRef(CP_M_Refere
[关于此主题还有其他类似的问题,但是它们都没有回答我在这里提出的问题,即AFAICT。 (即,我已经阅读了所有答案,解释了为什么特定构造无法与发问者尝试进行的操作,在某些情况下,它们提供了获得所需结果
嗨 我想为需要全屏运行的网络艺术应用程序构建一个控制面板,因此所有控制颜色和速度值等内容的面板都必须位于不同的窗口中。 我的想法是建立一个数据库来存储所有这些值,当我在控制面板窗口中进行更改时,应用程
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this qu
假设我想实现一个分布式数据库(每个节点都是其他节点的副本);我听说 cdb 能够轻松地在两个节点之间进行同步,并且至少支持某种形式的冲突解决。 不幸的是我不知道 couchdb 因此我不得不问:节点“
我是一名优秀的程序员,十分优秀!