NoClassDefFoundError: android.destek.v7.iç.görünüm.menü.MenuBuilder | Netgez.com
SORU
17 Temmuz 2014, PERÅžEMBE


NoClassDefFoundError: android.destek.v7.iç.görünüm.menü.MenuBuilder

Samsung cihazlarda Android v7 appcompat kütüphane 4.2 Android çalışan ile ilgili bir sorun vardır. Aşağıdaki benim Geliştirici yığın izlemesi çöküyor Konsol almaya devam ediyorum:

java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder
    at android.support.v7.widget.PopupMenu.<init>(PopupMenu.java:66)
    at com.[my-package-name].CustomActivity$5.onClick(CustomActivity.java:215)
    at android.view.View.performClick(View.java:4222)
    at android.view.View$PerformClick.run(View.java:17620)
    at android.os.Handler.handleCallback(Handler.java:800)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:194)
    at android.app.ActivityThread.main(ActivityThread.java:5391)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:525)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
    at dalvik.system.NativeStart.main(Native Method)

Bu CustomActivity.java 215 çizgi vardır:

PopupMenu popup = new PopupMenu(CustomActivity.this, mImageViewMenu);

Çöküyor cihazlar, ama her zaman Samsung bir dizi geliyor, ve her zaman Android 4.2.

Hızlı bir web arama birçok kişi aynı sorunu olduğuna inanıyorum yol açar, bu sorunu çözmek için çalıştık bazı adımlar vardır:

  • Android proje özellikleri kontrol, appcompat kütüphane düzgün eklenir emin olun.
  • Java Yolunu SipariÅŸ OluÅŸturmak ve proje özellikleri İhracat, Android Bağımlılıkları ve Android Özel Kütüphaneler iÅŸaretli olduÄŸundan emin olun.
  • Kütüphanede bulunan sınıf (android.Onayla destek.v7.iç.görünüm.menü.MenuBuilder).
  • R.java android için gen dizininde bulunan onaylayın.destek.v7.appcompat.
  • AppCompat tema manifest.xml etkinliÄŸe dahil olduÄŸunu onaylayın.
  • Temiz ve proje yeniden oluÅŸturun.

Bu adımlara rağmen, ve tüm diğer cihazlar ve Android sürümleri üzerinde çalışmaya rağmen kaza raporları hala geçiyor.

CEVAP
29 EKİM 2014, ÇARŞAMBA


DÜZENLEME:

Benim için çalıştı çözüm (Marathon Kullanarak) bu değiştirmek için:

-keep class android.support.v4.** { *; } 
-keep interface android.support.v4.** { *; }

-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }

bu:

# Allow obfuscation of android.support.v7.internal.view.menu.**
# to avoid problem on Samsung 4.2.2 devices with appcompat v21
# see https://code.google.com/p/android/issues/detail?id=78377
-keep class !android.support.v7.internal.view.menu.**,android.support.** {*;}

Kredi google grubuna gider: https://code.google.com/p/android/issues/detail?id=78377 #138

Eski cevap (Geçici Çözüm): Bir ben, bir proje olurbu spinnerActionBar. Benim çözüm bu gibi durumlar için kontrol ve uygulama akışını değiştirmek için:

public static boolean isSamsung_4_2_2() {
    String deviceMan = Build.MANUFACTURER;
    String deviceRel = Build.VERSION.RELEASE;
    return "samsung".equalsIgnoreCase(deviceMan) && deviceRel.startsWith("4.2.2");
}

Daha sonra etkinliğin içinde onCreate yöntemi:

if (isSamsung_4_2_2()) {
    setContentView(R.layout.activity_main_no_toolbar);
} else {
    setContentView(R.layout.activity_main);
}

Bu kesin bir çözüm değildir belirttiği gibi, sadece kullanıcıların daha kalıcı bir çözüm bulmuş olsa da sınırlı işlevsellik erişmek için izin vermek için bir yoldur.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ★ByScrapi★ Designs

    ★ByScrapiâ

    27 AÄžUSTOS 2013
  • bethliebert

    bethliebert

    23 EKİM 2008
  • Joe DiFeo

    Joe DiFeo

    7 AÄžUSTOS 2012