代码之家  ›  专栏  ›  技术社区  ›  0xA Farid Haq

java.lang.NoSuchMethodError:没有带(Landroid/content/Context;)的静态方法Lcom/squareup/picasso/picasso;

  •  0
  • 0xA Farid Haq  · 技术社区  · 6 年前

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

    noSuchMethodError

    好的,我将两个字符串合并在一起,一个是在slider上显示的名称,另一个是活动类型,然后我将输入一个hashmap和键拆分键并加载 .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);
    

    我的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)
    
    1 回复  |  直到 6 年前
        1
  •  6
  •   0xA Farid Haq    6 年前

    如果有人面临这个问题,damijana,创建这个图书馆的人不再支持它了。

    但是firdausmaulan是一个开发者,他制作了一个与damijana没有什么不同的库,但是它使用glide而不是毕加索。

    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

        2
  •  6
  •   Dulanga    5 年前

    当我发现这是实际问题时,开发 com.daimajia.slider.library 他们用 com.squareup.picasso 在他们的图书馆里,但是 开发人员停止更新后 version 1.1.5@aar 因此,该库需要旧版本的 图书馆

    最新 (2.71828) 毕加索 (如果您同时使用两个库) 你可以用 picasso 2.3.2 or 2.5.2 daimajia 图书馆没有任何问题。

        3
  •  0
  •   voghDev    5 年前

    2.5.2 . 通过升级到新版本解决了此问题

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

    不要忘记,现在必须从以下位置更新对毕加索的所有呼叫:

    旧语法

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

    新语法

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

    希望对你也有用:-)