java.lang.NoSuchMethodError:没有带(Landroid/content/Context;)Lc



我认为这是一个库兼容性问题,但值得尝试一下。

我正试图在我的应用程序中实现一个图像滑块,而毕加索图书馆正在尝试,它给了我noSuchMethodError

好的,我插入两个字符串,一个是显示在滑块上的名称,另一个是活动类型,然后我放入一个哈希图和键拆分键,并加载到.image中。

for (String key : image_list.keySet()   ) {
String[] keySplit = key.split("@@@");
String nameOfDeal = keySplit[0];
String typeOfActivity = keySplit[1];

当我记录nameOfDealimage_list.get(key)的格式正确时。有什么想法吗?下面是我的代码。

我初始化了一个SliderLayout

//Create TextSlider
final TextSliderView textSliderView = new TextSliderView(getBaseContext());
textSliderView.description(nameOfDeal)
.image(image_list.get(key))
.setScaleType(BaseSliderView.ScaleType.Fit)
.setOnSliderClickListener(new 
BaseSliderView.OnSliderClickListener() {
@Override
public void onSliderClick(BaseSliderView slider) 
{
Intent intent = new Intent(MainActivity.this, main_intermediate.class);
intent.putExtras(textSliderView.getBundle());
startActivity(intent);
}
});
textSliderView.bundle(new Bundle());                
textSliderView.getBundle().putString("uniqueID",typeOfActivity);
mSlider.addSlider(textSliderView);

我的LOGCAT

11-08 20:51:01.456 1575-1575/com.example.karam.nlcg E/AndroidRuntime: FATAL 
EXCEPTION: main
Process: com.example.karam.nlcg, PID: 1575
java.lang.NoSuchMethodError: No static method 
with(Landroid/content/Context;)Lcom/squareup/picasso/Picasso; in class 
Lcom/squareup/picasso/Picasso; or its super classes (declaration of 
'com.squareup.picasso.Picasso' appears in /data/app/com.example.karam.nlcg- 
hOIyNfHuyD9O29FGhzu4EQ==/split_lib_dependencies_apk.apk)
at com.daimajia.slider.library. 
SliderTypes.BaseSliderView.bindEventAndShow(BaseSliderView.java:210)
at com.daimajia.slider.library.' 
SliderTypes.TextSliderView.getView(TextSliderView.java:25)
at com.daimajia.slider.library.
SliderAdapter.instantiateItem(SliderAdapter.java:81)
at com.daimajia.slider.library.
Tricks.InfinitePagerAdapter.instantiateItem(InfinitePagerAdapter.java:54)
at com.daimajia.slider.library.Tricks
.ViewPagerEx.addNewItem(ViewPagerEx.java:848)
at com.daimajia.slider.library.Tricks.
ViewPagerEx.populate(ViewPagerEx.java:998)
at com.daimajia.slider.library.Tricks.
ViewPagerEx.setCurrentItemInternal(ViewPagerEx.java:562)
at c 
om.daimajia.slider.library.Tricks.
ViewPagerEx.setCurrentItemInternal(ViewPagerEx.java:526)
at com.daimajia.slider.library.Tricks.ViewPagerEx.
setCurrentItem(ViewPagerEx.java:507)
at 
com.daimajia.slider.library.Indicators.
PagerIndicator$1.onChanged(PagerIndicator.java:411)
at android.database.DataSetObservable.notifyChanged
(DataSetObservable.java:37)
at 
android.support.v4.view.PagerAdapter.
notifyDataSetChanged(PagerAdapter.java:293)
at 
com.daimajia.slider.library.SliderAdapter.addSlider(SliderAdapter.java:28)
at 
com.daimajia.slider.library.SliderLayout.addSlider(SliderLayout.java:237)
at 
com.example.karam.nlcg.MainActivity$3.onDataChange(MainActivity.java:292)
at com.google.firebase.database.core.ValueEventRegistration.
fireEvent(com.google.firebase:firebase-database@@16.0.4:75)
at com.google.firebase.database.core.view.DataEvent.fire
(com.google.firebase:firebase-database@@16.0.4:63)
at 

com.google.firebase.database.core.view.EventRaiser$1
.run(com.google.firebase:fir 
ebase-database@@16.0.4:55)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke(Native Method)
at 
com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

正如我所发现的,这是在开发com.daimajia.slider.library时的实际问题他们在库中使用了com.squareup.picasso,但com.daimajia.slider.library开发人员在version 1.1.5@aar之后停止了更新,因此该库需要旧版本的com.squareup.picasso

因此,您不能将com.daimajia.slider.library与最新的(2.71828)com.squareup.picasso一起使用(如果您同时使用两个库(您可以将picasso 2.3.2 or 2.5.2daimajia库一起使用,而不会出现任何问题。

如果有人面临这个问题,创建库的人damijana将不再支持它。

但firdausmaulan是一名开发人员,他制作了一个与damijana没有什么不同的库,但它使用了glide而不是picasso。

链接到github项目:https://github.com/firdausmaulan/GlideSlider

链接到示例:https://github.com/firdausmaulan/GlideSlider-Example/blob/feature/1.3.2/app/src/main/java/com/glide/slider/example/MainActivity.java

我在旧版本的Picasso2.5.2上遇到了这个问题。通过升级到新版本解决了问题

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

别忘了,所有给毕加索的电话现在都必须从以下位置更新:

旧语法

Picasso.with(context)
.load(url)
.into(imageView)

新语法

Picasso.get()
.load(url)
.into(imageView)

希望它也适用于你:-(

相关内容

  • 没有找到相关文章

最新更新