【问题标题】:cannot find symbol method with() using picasso library android使用毕加索库android找不到带有()的符号方法
【发布时间】:2018-05-30 09:07:26
【问题描述】:

我在 android 应用程序中遇到了一个问题,我正在尝试检查已经存在的应用程序,该应用程序包含

 implementation('com.squareup.picasso:picasso:3.0.0-SNAPSHOT') {
        exclude group: 'com.android.support'
    }

毕加索图书馆和

在类中使用该库,这里是代码

import com.squareup.picasso.Picasso;

    Picasso.with().load(url).placeholder(R.drawable.default_pic).into(imageView);

这是错误,Error:(49, 20) error: cannot find symbol method with()

而我的 android studio 版本是 3.0 RC1,这是个问题吗?

【问题讨论】:

  • 如何将 Picasso.with(MainActivity.this) 替换为 Get() 方法?

标签: android image picasso


【解决方案1】:

在最新的毕加索快照中,您使用的方法 with 似乎已重命名为 get,请在此处查看相关提交:https://github.com/square/picasso/commit/e7e919232fe2b15772a7fcd9e15ead2304c66fae

所以将with() 替换为get() 应该可以工作。

由于您使用的是尚未正式发布的版本,因此还没有发布说明,这样的惊喜可能会发生 ;-)

顺便说一句:这对我来说似乎是一个不错的名称更改,因为名为“with”但没有参数的方法有点奇怪:-P

【讨论】:

  • 您知道Picasso 使用新方法从哪里获取上下文吗?以前是with(context),现在是get(),没有传递上下文?
  • 可能是它正在加载图像的图像视图的上下文。
  • @ClassA 它使用 Android 的 ContentProvider 中的 getContext(),参见 PicassoProvider.java
  • 我找不到get()with()。跟Proguard有关系吗?
  • Picasso.get() 应该可以工作 Picasso.with(context) 已弃用
【解决方案2】:

使用get() 代替with() 会起作用

Picasso.get().load("image_URL").into(imageView);

with() hast been renamed to get()

【讨论】:

【解决方案3】:

我们必须将with() 替换为get() 并且非常重要,现在此方法不需要上下文。

 Picasso.get().load(url).into(view);

将文档中描述的依赖项添加到build.gradle文件中:

implementation 'com.squareup.picasso:picasso:2.71828'

Picasso documentation.

【讨论】:

    【解决方案4】:

    在最新的 Picasso 库中,他们将 with() 重命名为 get()

    所以,不要使用

    Picasso.with(context).load(url).placeholder(R.drawable.default_pic).into(imageView);
    

    使用下一行

    Picasso.get().load(url).placeholder(R.drawable.default_pic).into(imageView);
    

    【讨论】:

    • 传递上下文发生了什么?为什么不再需要它?
    【解决方案5】:

    你需要改变方法 with() 为 get()

    示例:

    之前:

    Picasso.with(context).load(listaConductores.get(position).getAvatarUrl()).into(holder.imageId);
    

    之后:

    Picasso.get().load(listaConductores.get(position).getAvatarUrl()).into(holder.imageId);

    我的依赖:

    implementation 'com.squareup.picasso:picasso:2.71828'
    

    【讨论】:

      【解决方案6】:
      Picasso.with(context).load("imageUrl").into(imageView);
      
      replace it with this below code.
      
      Picasso.get().load("imageUrl").into(imageView);
      

      【讨论】:

      • 虽然此代码可能会为问题提供解决方案,但最好添加有关其工作原理/方式的上下文。这可以帮助未来的用户学习并将这些知识应用到他们自己的代码中。在解释代码时,您也可能会以赞成票的形式从用户那里获得积极的反馈。
      【解决方案7】:

      而不是 with() :

      Picasso.with().load(listdata.getImageurl()).into(img);
      

      使用 get() :

      Picasso.get().load(listdata.getImageurl()).into(img);
      

      build.gradle 中添加这个:

       implementation 'com.squareup.picasso:picasso:2.4.0'
      

      这对我有用...

      【讨论】:

      • 错了。 v2.4.0 仍然使用Picasso.with()
      【解决方案8】:

      * 如果您使用的是 Picasso library v.2.5.2,请尝试这行代码 *

      Picasso.with(context).load("imageUrl").into(imageView);

      将此添加到依赖项中的 build.gradle 文件中

      implementation 'com.squareup.picasso:picasso:2.5.2'

      * 试试这行代码,如果您使用的是旧版本,例如 v.2.4.0*

      Picasso.get(context).load("imageUrl").into(imageView);

      将此添加到依赖项中的 build.gradle 文件中

      implementation 'com.squareup.picasso:picasso:2.4.0'

      【讨论】:

        【解决方案9】:

        实现'com.squareup.picasso:picasso:2.5.2'

        将此依赖项添加到您的 build.gradel 文件并同步。

        【讨论】:

          【解决方案10】:

          只需用(context) 替换为get()

          也添加到 Gradle

          实现'com.squareup.picasso:picasso:2.5.2'

          【讨论】:

          • 为什么会这样?上下文发生了什么?他们为什么要做出如此大的改变(即破坏所有旧代码)?
          【解决方案11】:

          我不得不降级到毕加索库 v.2.5.2 以避免代码调试更快更容易。

          
          dependencies {
              implementation fileTree(dir: 'libs', include: ['*.jar'])
              implementation 'com.android.support:appcompat-v7:28.0.0'
              implementation 'com.android.support:support-media-compat:28.0.0'
              implementation 'com.android.support.constraint:constraint-layout:1.1.3'
              implementation 'com.android.support:recyclerview-v7:28.0.0'
              implementation 'com.android.support:cardview-v7:28.0.0'
              implementation 'com.squareup.picasso:picasso:2.5.2'---> downgraded version
          }
          

          【讨论】:

            【解决方案12】:
            Picasso.with(MainActivity.this).load("image_URL").into(imageView);
            

            将此代码更改为..

            Picasso.get().load("image_URL").into(imageView);
            

            【讨论】:

              猜你喜欢
              • 2016-06-18
              • 2016-01-28
              • 1970-01-01
              • 2017-05-17
              • 2016-09-03
              • 1970-01-01
              • 1970-01-01
              • 2018-04-26
              • 1970-01-01
              相关资源
              最近更新 更多