未能使用Android Support Library v4

4

我正在尝试使用来自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或类似的文件。如果我是正确的,能否告诉我应该在哪里以及如何实现这个操作?非常感谢您提供的任何帮助。

3个回答

6
对我而言,这是在重新安装后第一次构建Xamarin项目时,在完成初始构建之前关闭了VS所致。
看起来进程似乎已经停止响应,但实际上它正在以缓慢的速度从谷歌下载内容。
退出Visual Studio。
删除/重命名c:\Users\username\AppData\Local\Xamarin 重新打开解决方案。
清理解决方案。
编译,等待直到完全完成。
在Windows上,使用资源监视器确定是否正在进行下载。
MSBuild将会从something.1e100.net下载东西。

5

只需添加NuGet包即可正常运行。

需要检查的几个事项:

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

数字2解决了问题。谢谢。但是我不得不手动从其他地方下载android_m2repository_r20.zip。可能是我的互联网连接出了问题。 - a.toraby

1
我曾经遇到过这个问题,对我来说也是由于zip下载文件损坏导致的——它被截断了。由于zip文件损坏,它无法解压并开始抱怨。解决方法?手动下载并替换损坏的zip文件(在我的情况下,找到这里:C:\Users[User]\AppData\Local\Xamarin\Android.Support.v4\23.0.1.3)。

相同的解决方案为我解决了问题。 - a.toraby

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接