无法使用 Android 支持库 v4

Failed to use Android Support Library v4

我正在尝试使用 android.support.v4 库中的 DrawerLayout。我已经使用 Nuget 添加了 Xamarin.Android.Support.v4 包,但我仍然无法编译该应用程序,并且遇到以下错误:

    Error   1    error: cannot find symbol
        android.support.v4.content.Loader.OnLoadCanceledListener
  symbol:   class OnLoadCanceledListener
  location: class Loader
    xxx\obj\Debug\android\src\mono\android\support\v4\content\Loader_OnLoadCanceledListenerImplementor.java 8   36  xxx
Error   6    error: cannot find symbol
        android.support.v4.view.MenuItemCompat.OnActionExpandListener
  symbol:   class OnActionExpandListener
  location: class MenuItemCompat
    xxx\obj\Debug\android\src\mono\android\support\v4\view\MenuItemCompat_OnActionExpandListenerImplementor.java    8   41  xxx
Error   7    error: cannot find symbol
        android.support.v4.view.OnApplyWindowInsetsListener
  symbol:   class OnApplyWindowInsetsListener
  location: package android.support.v4.view
    xxx\obj\Debug\android\src\mono\android\support\v4\view\OnApplyWindowInsetsListenerImplementor.java  8   26  xxx
Error   12   error: cannot find symbol
        android.support.v4.view.ViewPropertyAnimatorListener
  symbol:   class ViewPropertyAnimatorListener
  location: package android.support.v4.view
    xxx\obj\Debug\android\src\mono\android\support\v4\view\ViewPropertyAnimatorListenerImplementor.java 8   26  xxx
Error   13   error: cannot find symbol
        android.support.v4.view.ViewPropertyAnimatorUpdateListener
  symbol:   class ViewPropertyAnimatorUpdateListener
  location: package android.support.v4.view
    xxx\obj\Debug\android\src\mono\android\support\v4\view\ViewPropertyAnimatorUpdateListenerImplementor.java   8   26  xxx
Error   10   error: cannot find symbol
    private native android.support.v4.view.WindowInsetsCompat n_onApplyWindowInsets (android.view.View p0, android.support.v4.view.WindowInsetsCompat p1);
  symbol:   class WindowInsetsCompat
  location: package android.support.v4.view
    xxx\obj\Debug\android\src\mono\android\support\v4\view\OnApplyWindowInsetsListenerImplementor.java  32  128 xxx
Error   11   error: cannot find symbol
    private native android.support.v4.view.WindowInsetsCompat n_onApplyWindowInsets (android.view.View p0, android.support.v4.view.WindowInsetsCompat p1);
  symbol:   class WindowInsetsCompat
  location: package android.support.v4.view
    xxx\obj\Debug\android\src\mono\android\support\v4\view\OnApplyWindowInsetsListenerImplementor.java  32  40  xxx
Error   8    error: cannot find symbol
    public android.support.v4.view.WindowInsetsCompat onApplyWindowInsets (android.view.View p0, android.support.v4.view.WindowInsetsCompat p1)
  symbol:   class WindowInsetsCompat
  location: package android.support.v4.view
    xxx\obj\Debug\android\src\mono\android\support\v4\view\OnApplyWindowInsetsListenerImplementor.java  27  118 xxx
Error   9    error: cannot find symbol
    public android.support.v4.view.WindowInsetsCompat onApplyWindowInsets (android.view.View p0, android.support.v4.view.WindowInsetsCompat p1)
  symbol:   class WindowInsetsCompat
  location: package android.support.v4.view
    xxx\obj\Debug\android\src\mono\android\support\v4\view\OnApplyWindowInsetsListenerImplementor.java  27  32  xxx
Error   2    error: package android.support.v4.media.session.MediaSessionCompat does not exist
        android.support.v4.media.session.MediaSessionCompat.OnActiveChangeListener
    xxx\obj\Debug\android\src\mono\android\support\v4\media\session\MediaSessionCompat_OnActiveChangeListenerImplementor.java   8   54  xxx
Error   3    error: package android.support.v4.os.CancellationSignal does not exist
        android.support.v4.os.CancellationSignal.OnCancelListener
    xxx\obj\Debug\android\src\mono\android\support\v4\os\CancellationSignal_OnCancelListenerImplementor.java    8   43  xxx
Error   4    error: package android.support.v4.view.ActionProvider does not exist
        android.support.v4.view.ActionProvider.SubUiVisibilityListener
    xxx\obj\Debug\android\src\mono\android\support\v4\view\ActionProvider_SubUiVisibilityListenerImplementor.java   8   41  xxx
Error   5    error: package android.support.v4.view.ActionProvider does not exist
        android.support.v4.view.ActionProvider.VisibilityListener
    xxx\obj\Debug\android\src\mono\android\support\v4\view\ActionProvider_VisibilityListenerImplementor.java    8   41  xxx
Error   14   error: package android.support.v4.widget.SwipeRefreshLayout does not exist
        android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener
    xxx\obj\Debug\android\src\mono\android\support\v4\widget\SwipeRefreshLayout_OnRefreshListenerImplementor.java   8   47  xxx

在我看来,我应该向 Xamarin 项目添加一个 jar 或类似的东西,请告诉我如果我现在是对的,我可以如何以及在何处执行此操作。感谢您的帮助

只需添加 NuGet 包即可正常工作。

有几件事需要检查。

  1. 如果您在 Windows 文件系统上,则无法找到的文件的完整路径长度不能超过 255 个字符
  2. 删除 NuGet 包并尝试再次添加它以查看是否有帮助
  3. 确保您拥有所有工具的最新稳定版本
  4. 确保您的 Android SDK 安装一切正常

我确实遇到了这个问题,对我来说也是一个损坏的 zip 下载 - 它被截断了。因为 zip 已损坏,所以它没有解压缩并开始抱怨。解决方案?手动下载并替换损坏的 zip 文件(我在这里找到:C:\Users[User]\AppData\Local\Xamarin\Android.Support.v4.0.1.3)

对我来说,这是由于在重新安装后我的第一个 Xamarin 项目的初始构建期间杀死 VS 造成的。

看起来好像进程已挂起,但显然它正在以缓慢的速度从 google 下载。

退出Visual studio

删除/重命名c:\Users\username\AppData\Local\Xamarin

再次打开解决方案

清洁解决方案

编译,等待编译完成

在 Windows,使用资源监视器确定下载是否正在进行。

MSBuild 将从某处下载。1e100.net。