Projemi derlediğimde ve JDK7 veya JDK6 ile Eclipse'de çalıştırdığımda her şey yolunda. Ancak bu ANT kullanarak ve daha sonra sistem JDK7 kullanarak çalıştırmak için güvenilir oluşturduktan sonra, hata iletisi: yöntem myClass.myMethod şube hedef 25 °Java 7 - Tutarsız stackmap çerçeveleri - Çözümün neden işe yaradığını anlama konusunda yardıma ihtiyacınız var
tutarsız stackmap çerçevelerini() [[Ljava/lang/nesne; En 14
her yere baktım ofset ve StackOverflow'daki burada iyi birkaç soru bulundu:
- Java 7 JVM VerifyError in Eclipse
- Akka Actors fails, VerifyError: Inconsistent stackmap frames at branch target
İkisi temelde olarak -XX:-UseSplitVerifier
eklemek önermek Sorunu çözen JVM seçeneği. Hala nedenini tam olarak anlamıyorum ama görünüşe göre this bug report yardım etmek için varsayalım. Ne yazık ki hala bunu anlamıyorum ...
Birisi bana Aspect yönelimli programlama kullandığını düşündüğüm sorulardan birinde fark ettim, bu da bana bu soruna neden olabilecek Guice (Google'ın DI çerçevesi) kullanıyorum ama nasıl göremiyorum. JDK7'yi desteklemesi bekleniyor.
Aynı zamanda Proguard'ı kullanıyorum, fakat bu da JDK7 ile çalışmayı düşünüyor.
Bu noktada, bu geçici çözümün, kodun bir kısmı bayt koduyla çalmaya çalıştığı (bu durumda JDK6) sürümüne temelde geri düşmekten başka neden çalışmadığı konusunda hiçbir fikrim yok. bu yüzden DI) kodu ile ilgili olduğunu düşünüyorum. Ama hala uygun bağlantıyı yapamıyorum. Ve ayrıca yoldan da olabilirdim!
Birisi ne olup bittiğini veya bunun neden olduğunu açıklayabilirse, son derece minnettar olurdum. Ayrıca, bir geçici çözüm kullanmaktan nefret ediyorum, çünkü uzun vadeli bir çözüm düşünmüyorum.
* "JDK7'yi desteklediğini varsayalım." * - belki desteği buggy. Guice sorunu izleyici/grup/listeleri aradınız mı? –
Sorun izleyicilerdeki hatalar açısından hiçbir şey bulamadık –
Tahminimce java7'de, kontrolleri doğrulayan daha agresif bayt kodu eklediler ve bağımlılık enjeksiyonunu yapmak için bayt koduyla ne yapıyorsa onu yapıyorlar Bu karıncalarla yaptığınızı söylerseniz, o kontroller –