我认为这是一个库兼容性问题,但值得一试。
我正在尝试在我的应用中实现图片滑块,而Picasso库变得合适,它给了我noSuchMethodError
。
好的,我要隐藏两个字符串,一个是在滑块上显示的名称,另一个是活动类型,然后放入一个哈希映射和键拆分键,然后加载到.image
中。
for (String key : image_list.keySet() ) {
String[] keySplit = key.split("@@@");
String nameOfDeal = keySplit[0];
String typeOfActivity = keySplit[1];
我登录nameOfDeal
并且image_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);
我的日志
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)
答案 0 :(得分:2)
如果有人遇到这个问题,达米亚纳(Danijana),图书馆的创建者不再支持它。
但是firdausmaulan是一名开发人员,他创建了一个与damijana没什么不同的库,但是它使用glide而不是picasso。
链接到github项目: https://github.com/firdausmaulan/GlideSlider
答案 1 :(得分:0)
我在使用较旧版本的毕加索2.5.2
时遇到此问题。通过升级到较新版本解决了该问题
implementation 'com.squareup.picasso:picasso:2.71828'
别忘了现在必须从以下位置更新对毕加索的所有通话:
旧语法
Picasso.with(context)
.load(url)
.into(imageView)
以新语法
Picasso.get()
.load(url)
.into(imageView)
希望它也对您有用:-)
答案 2 :(得分:0)
当我发现这是实际的问题时,开发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.2
daimajia
库中没有任何问题。