Visual Studio 2017 - Xamarin - 文件“objDebugandroidinpackaged_resources"不存在 [英] Visual Studio 2017 - Xamarin - The file "objDebugandroidinpackaged_resources" does not exist

查看:21
本文介绍了Visual Studio 2017 - Xamarin - 文件“objDebugandroidinpackaged_resources"不存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经与这个问题斗争了 2 天,但找不到任何解决方案.

我在 Visual Studio 2017 中有一个 Xamarin Android 应用,包含三个项目:

  1. Xamarin.Android 项目(主要项目)
  2. Android 特定的单元测试在设备上运行 - 使用

    正如其他 SO 线程所建议的那样,我尝试卸载最新的 Android SDK Build-tools (25.0.2) 并安装了 23.0.3 版本(我的所有项目都针对 Android 6.0),但它也没有帮助,我仍然有同样的错误.

    也许值得补充的是,当我尝试在我的应用程序中实现 RecyclerView 阅读 this 教程,他们建议在 SDK 管理器中安装 Android 7.1.1 (API 25).但是,在那之后我撤消了所有更改,甚至重新安装了 VS2017 + Xamarin.

    你知道为什么会这样吗?我真的很感激任何帮助.谢谢!

    编辑 2017-04-09:

    呃,我删除了 VS2017,使用全新的 Android SDK 安装了 VS2015,但仍然是同样的问题:(

    解决方案

    我终于找到了问题所在.它与 SDK Manager 或 VS 版本的任何组件无关.

    按照 来自 developer.xamarin.com 的本地化教程,我玩了一个在我的 Android 项目中使用 Strings.xml 位.我也想从资源中获取我的活动标签,所以在 ActivityAttribute 中我定义了:

    [Activity(Label = "@string/peopleListTitle")]

    并在 Strings.xml 文件中添加此值:

    在这种情况下,我的构建失败并出现上述错误:

    文件objDebugandroidinpackaged_resources"不存在

    当我将 ActivityAttribute 更改为直接使用字符串时:

    [Activity(Label = "People List")]

    构建顺利通过.

    我设法找到了一个解决方案,但实际上我不知道为什么当我尝试使用 Strings.xml 中定义的标签文本时它没有构建.

    顺便说一句,我设法通过在 Tools -> Options -> Projects and Solutions -> Build and Run 中将构建输出详细程度设置为 Diagnostic 来找到问题所在,这给出了输出窗口中构建失败的详细信息.

    I'm fighting with that issue for 2 days already and can't find any solution.

    I have an Xamarin Android app in Visual Studio 2017 consisting of three projects:

    1. Xamarin.Android project (main one)
    2. Android-specific unit tests run on the device - project of type NUnit 3 Test Project (Android) created using NUnit Templates for Visual Studio
    3. Platform-independent unit tests project (project of type Unit Test Project (.NET Framework))

    Everything worked just fine until now. When I selected my main project as the Startup one, my app was deployed to the device/emulator. When I selected my Android-specific unit tests project, the test project was deployed and unit tests executed by nUnit Xamarin Runners on the device/emulator.

    However few days ago I updated my Visual Studio 2017 with the newest available update and now, when trying to build this android-specific unit tests project I get the following error:

    The file "objDebugandroidinpackaged_resources" does not exist.

    I've searched everywhere, including this and this SO topics. I also totally reinstalled Visual Studio 2017 and Xamarin with Android SDK included. Nothing helped. From what I read I suspect there is something wrong with the versions of Android SDK Build-tools I have installed. Here's what I have currently installed in SDK Manager:

    As the other SO threads suggested, I tried uninstalling the newest Android SDK Build-tools (25.0.2) and installed version 23.0.3 (all my projects target Android 6.0), but it also doesn't help, I still have the same error.

    Maybe it's worth adding that this issue may have started to happen when I tried to implement RecyclerView in my app reading this tutorial, where they suggested to install Android 7.1.1 (API 25) in SDK Manager. However I undoed my all changes after that and even reintalled VS2017 + Xamarin.

    Do you have any other idea why this can be ? I'd really appreciate any help. Thanks!

    EDIT 2017-04-09:

    Egh, I removed VS2017, installed VS2015 with brand new Android SDK and still the same issue :(

    解决方案

    I've finally found what was the issue. It wasn't related to any component from SDK Manager or VS version.

    Following localization tutorial from developer.xamarin.com, I played a bit with Strings.xml in my Android project. I wanted to have my Activities Label taken from resources as well, so in the ActivityAttribute I defined:

    [Activity(Label = "@string/peopleListTitle")]
    

    and added this value in Strings.xml file:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <!-------Other resources values ----->
        <string name="peopleListTitle">People List</string>
    </resources>
    

    In that case my build is failing with above-mentioned error:

    The file "objDebugandroidinpackaged_resources" does not exist

    When I change ActivityAttribute to use a string directly:

    [Activity(Label = "People List")]
    

    the build is passing without any issues.

    I managed to find a solution, but actually I don't know why it's not building when I try to use Label text defined in Strings.xml.

    BTW, I managed to find what's the problem by setting build output verbosity to Diagnostic in Tools -> Options -> Projects and Solutions -> Build and Run which gives a detailed info why the build failed in the Output window.

    这篇关于Visual Studio 2017 - Xamarin - 文件“objDebugandroidinpackaged_resources"不存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆