使用Picasso库在安卓中无法找到带有()的方法

76

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

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

使用Picasso库并在类中使用该库,以下是代码:

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,这是否是一个问题?


如何使用Get()方法替换Picasso.with(MainActivity.this)? - vdr
13个回答

129

最新的Picasso快照中,似乎您正在使用的方法with已被重命名为get,请参见相关提交:https://github.com/square/picasso/commit/e7e919232fe2b15772a7fcd9e15ead2304c66fae

因此,请将with()替换为get(),然后应该可以正常运行。

由于您使用的是尚未正式发布的版本,因此还没有发行说明,而像这样的意外情况可能会发生 ;-)

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


8
дҪ зҹҘйҒ“Picassoж–°ж–№жі•дёӯзҡ„дёҠдёӢж–ҮжҳҜд»Һе“ӘйҮҢиҺ·еҸ–зҡ„еҗ—пјҹд»ҘеүҚжҳҜдҪҝз”Ёwith(context)пјҢзҺ°еңЁеҸҳжҲҗдәҶget()пјҢжІЎжңүдј йҖ’дёҠдёӢж–ҮгҖӮ - ClassA
也许是图像视图正在加载图像的上下文。 - Sarthak Grover
2
@ClassA使用Android的ContentProvider中的getContext(),请参见PicassoProvider.java。 - gi097
我找不到get()或者with()。这与Proguard有关吗? - MrObjectOriented
Picasso.get() 应该可以工作 Picasso.with(context) 已经被弃用 - MohammadReza

42

使用get()代替with(),它会起作用。

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

with()已更名为get()


https://oss.sonatype.org/content/repositories/snapshots/com/squareup/picasso/picasso/2.5.3-SNAPSHOT/ - Ratilal Chopda
1
嗯...所以您建议降级Picasso版本,但如果用户实际上想要使用即将推出的3.x版本怎么办? - donfuxx
@donfuxx,只是在更新答案。 - AskNilesh
https://github.com/square/picasso/issues/364 建议更新到3.0.0-SNAPSHOT版本。 - CoolMind

21

我们必须用get()替换with(),而且非常重要的是,这个方法现在不需要上下文。

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

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

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

Picasso文档。


7
在最新的Picasso库中,他们将重命名为。
因此,不再使用:,而是使用:。
Picasso.with(context).load(url).placeholder(R.drawable.default_pic).into(imageView);

请使用以下代码行

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

1
传递上下文发生了什么?为什么不再需要它了? - Harsha

7

您需要将方法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'

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

replace it with this below code.

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

2
虽然这段代码可能提供了问题的解决方案,但最好添加上为什么/如何运作的上下文。这可以帮助未来的用户学习,并将这些知识应用到他们自己的代码中。当代码被解释时,您还可能会得到用户的积极反馈,例如点赞。 - borchvm

1

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

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

将以下代码添加到build.gradle文件的dependencies部分中: implementation 'com.squareup.picasso:picasso:2.5.2' * 如果您使用的是旧版本(例如v.2.4.0),请尝试使用此行代码 *

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

将以下代码添加到您的build.gradle文件中的dependencies部分:

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


1
Picasso.with(MainActivity.this).load("image_URL").into(imageView);

将这段代码转换为...
Picasso.get().load("image_URL").into(imageView);

1

使用 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() - Mickäel A.

0

使用:

Picasso.with (Context).load ("image_URL").into (imageView);


代替:

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


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