2014-12-22 2 views
3

twitter4j와 함께 proguard를 사용하고 new TwitterFactory(configuration)을 호출 할 때 noMethodFound 예외를 끊임없이 받기 위해 노력하고 있습니다. (트위터 관련) 내 난독 구성에서android Proguard with twitter4j

java.lang.AssertionError: java.lang.NoSuchMethodException: <init> [interface twitter4j.conf.Configuration, interface twitter4j.auth.Authorization] 
     at twitter4j.TwitterFactory.<clinit>(TwitterFactory.java:73) 
     at com.applicaster.util.twitter.TwitterAuthenticationUtil.getServiceInstance(Unknown Source) 
     at com.applicaster.util.twitter.TwitterAuthenticationUtil.logIn(Unknown Source) 
     at feed.x.b(Unknown Source) 
     at feed.A.onClick(Unknown Source) 
     at android.view.View.performClick(View.java:4442) 
     at android.view.View$PerformClick.run(View.java:18473) 
     at android.os.Handler.handleCallback(Handler.java:733) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:136) 
     at android.app.ActivityThread.main(ActivityThread.java:5105) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608) 
     at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NoSuchMethodException: <init> [interface twitter4j.conf.Configuration, interface twitter4j.auth.Authorization] 
     at java.lang.Class.getConstructorOrMethod(Class.java:472) 
     at java.lang.Class.getDeclaredConstructor(Class.java:562) 
     at twitter4j.TwitterFactory.<clinit>(TwitterFactory.java:71) 
            at com.applicaster.util.twitter.TwitterAuthenticationUtil.getServiceInstance(Unknown Source) 
            at com.applicaster.util.twitter.TwitterAuthenticationUtil.logIn(Unknown Source) 
            at feed.x.b(Unknown Source) 
            at feed.A.onClick(Unknown Source) 
            at android.view.View.performClick(View.java:4442) 
            at android.view.View$PerformClick.run(View.java:18473) 
            at android.os.Handler.handleCallback(Handler.java:733) 
            at android.os.Handler.dispatchMessage(Handler.java:95) 
            at android.os.Looper.loop(Looper.java:136) 
            at android.app.ActivityThread.main(ActivityThread.java:5105) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608) 
            at dalvik.system.NativeStart.main(Native Method) 

이다 : 것은이

-dontoptimize 
    -dontpreverify 
    -dontobfuscate 

    -optimizations !code/simplification/arithmetic 
    -allowaccessmodification 
    -repackageclasses '' 
    -keepattributes *Annotation* 
    -keepattributes InnerClasses 
    -keepattributes Signature 
    -keepattributes Exceptions 
    -keepattributes JavascriptInterface 
    -dontnote 
    -dontwarn twitter4j.** 
    -keep class twitter4j.** 
    -keep public class twitter4j.TwitterFactory 
    -keep interface twitter4j.** 

는, 구성 및 권한 부여 객체를 모두 사용 TwitterFactory에 대한 생성자가없는

이것은 예외 매개 변수로. 왜 그런 방법을 찾고 있는지 모르겠다. ...

도움 해주십시오? 다음과 같이 트위터 4J 대한

답변

11

내 난독의 구성은 다음과 같습니다 - 또한 내가 compile 'org.twitter4j:twitter4j-core:4.0.2'

이 당신을 위해 작동하는지 알려줘 사용하고

-dontwarn twitter4j.** 
-keep class twitter4j.conf.PropertyConfigurationFactory 
-keep class twitter4j.** { *; } 

.

+0

정말 고마워요. 그것은, 비록 내가 twitter4j를 사용하고있어 3.0.5 – atulkhatri

+0

이것은 나를 위해 일했다 :) – NarendraJi