2016-04-20 34 views
6

Uygulamamın, uygulamanın yayımlanan sürümünde bu hatayla karşılaşmasını sağlıyorum.android java.lang.AssertionError: java.lang.NoSuchMethodException - Proguard

# Add project specific ProGuard rules here. 
# By default, the flags in this file are appended to flags specified 
# in /home/adisoft2/android/android-sdk-linux/tools/proguard/proguard-android.txt 
# You can edit the include path and order by changing the proguardFiles 
# directive in build.gradle. 
# 
# For more details, see 
# http://developer.android.com/guide/developing/tools/proguard.html 
# Add any project specific keep options here: 
# If your project uses WebView with JS, uncomment the following 
# and specify the fully qualified class name to the JavaScript interface 
# class: 
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { 
# public *; 
#} 
#-injars  bin/classes 
#-injars  libs 
#-outjars  bin/classes-processed.jar 
#-libraryjars /usr/local/java/android-sdk/platforms/android-9/android.jar 
-keep class twitter4j.conf.** 
-keep class twitter4j.TwitterImpl 
-keep class twitter4j.conf.PropertyConfigurationFactory 
-dontwarn com.squareup.okhttp.** 
-dontwarn com.google.appengine.api.urlfetch.** 
-dontwarn rx.** 
-dontwarn retrofit.** 
-keepattributes Signature 
-keepattributes *Annotation* 
-keep class com.squareup.okhttp.** { *; } 
-keep interface com.squareup.okhttp.** { *; } 
-keep class retrofit.** { *; } 
-keepclasseswithmembers class * { 
    @retrofit.http.* <methods>; 
} 
-dontwarn twitter4j.** 
-dontwarn com.google.android.gms.** 
-dontwarn okio.** 


# This is a configuration file for ProGuard. 
# http://proguard.sourceforge.net/index.html#manual/usage.html 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-verbose 
# Optimization is turned off by default. Dex does not like code run 
# through the ProGuard optimize and preverify steps (and performs some 
# of these optimizations on its own). 
-dontoptimize 
-dontpreverify 
# Note that if you want to enable optimization, you cannot just 
# include optimization flags in your own project configuration file; 
# instead you will need to point to the 
# "proguard-android-optimize.txt" file instead of this one from your 
# project.properties file. 
-keepattributes *Annotation* 
-keep public class com.google.vending.licensing.ILicensingService 
-keep public class com.android.vending.licensing.ILicensingService 
# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native 
-keepclasseswithmembernames class * { 
    native <methods>; 
} 
# keep setters in Views so that animations can still work. 
# see http://proguard.sourceforge.net/manual/examples.html#beans 
-keepclassmembers public class * extends android.view.View { 
    void set*(***); 
    *** get*(); 
} 
# We want to keep methods in Activity that could be used in the XML attribute onClick 
-keepclassmembers class * extends android.app.Activity { 
    public void *(android.view.View); 
} 
# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations 
-keepclassmembers enum * { 
    public static **[] values(); 
    public static ** valueOf(java.lang.String); 
} 
-keepclassmembers class * implements android.os.Parcelable { 
    public static final android.os.Parcelable$Creator CREATOR; 
} 
-keepclassmembers class **.R$* { 
    public static <fields>; 
} 
# The support library contains references to newer platform versions. 
# Don't warn about those in case this app is linking against an older 
# platform version. We know about them, and they are safe. 
-dontwarn android.support.** 

bana bildirin - ayıklama modunda iyi çalışıyor Onun

Process: com.app, PID: 13162 
     java.lang.AssertionError: java.lang.NoSuchMethodException: <init> [interface twitter4j.conf.Configuration, interface twitter4j.a.b] 
       at twitter4j.n.<clinit>(Unknown Source) 
       at com.app.activities.RegistrationActivity.g(Unknown Source) 
       at com.app.activities.RegistrationActivity.onCreate(Unknown Source) 
       at android.app.Activity.performCreate(Activity.java:6289) 
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) 
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646) 
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758) 
       at android.app.ActivityThread.access$900(ActivityThread.java:177) 
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448) 
       at android.os.Handler.dispatchMessage(Handler.java:102) 
       at android.os.Looper.loop(Looper.java:145) 
       at android.app.ActivityThread.main(ActivityThread.java:5942) 
       at java.lang.reflect.Method.invoke(Native Method) 
       at java.lang.reflect.Method.invoke(Method.java:372) 
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 
     Caused by: java.lang.NoSuchMethodException: <init> [interface twitter4j.conf.Configuration, interface twitter4j.a.b] 
       at java.lang.Class.getConstructor(Class.java:531) 
       at java.lang.Class.getDeclaredConstructor(Class.java:510) 
       at twitter4j.n.<clinit>(Unknown Source) 
       at com.app.activities.RegistrationActivity.g(Unknown Source) 
       at com.app.activities.RegistrationActivity.onCreate(Unknown Source) 
       at android.app.Activity.performCreate(Activity.java:6289) 
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) 
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646) 
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758) 
       at android.app.ActivityThread.access$900(ActivityThread.java:177) 
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448) 
       at android.os.Handler.dispatchMessage(Handler.java:102) 
       at android.os.Looper.loop(Looper.java:145) 
       at android.app.ActivityThread.main(ActivityThread.java:5942) 
       at java.lang.reflect.Method.invoke(Native Method) 
       at java.lang.reflect.Method.invoke(Method.java:372) 
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 

hata aşağıdaki gibi İşte

proguard-rules.pro çünkü proguard dosyasının oluşturulabilir görünüyor ne yapıyorum ve nasıl düzelteceğim.

+0

Tüm twitter lib sınıflarını -keep'e eklemeyi denediniz mi? Görünüşe çalıştığınız işlev, proguard – Msk

+0

tarafından gizlenmiş gibi görünüyor. Ayrıca bu http://stackoverflow.com/questions/5592511/how-to-keep-all-methods-in-a-class-with- proguard – Msk

+0

Cevabı aldım. Teşekkürler. – NarendraJi

cevap

3

Bunu proguard-rules.pro dosyasına eklemek benim için çalıştı.