问题
If I don't run pro-guard on my project, everything is fine but if I run pro-guard and install .apk in device, I am getting above error. I tried adding following lines in proguard-android.txt
file
-keep public class twitter4j.conf.PropertyConfigurationFactory
-dontwarn twitter4j.**
but it did not make any difference.
I am using default proguard-android.txt
file from SDK
and setting it in project.properties
like below
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
I had a look at this link for same issue but could not understand that and also googling did not helped me much.
So, could anybody please tell me what is wrong here?
Thanks in advance
Edit :
Logcat error after removing public
qualifier:
04-18 12:05:25.425: E/AndroidRuntime(16405): FATAL EXCEPTION: main
04-18 12:05:25.425: E/AndroidRuntime(16405): java.lang.ExceptionInInitializerError
04-18 12:05:25.425: E/AndroidRuntime(16405): at twitter4j.b.a.h.<init>(Unknown Source)
04-18 12:05:25.425: E/AndroidRuntime(16405): at twitter4j.ap.a(Unknown Source)
04-18 12:05:25.425: E/AndroidRuntime(16405): at twitter4j.ap.<init>(Unknown Source)
04-18 12:05:25.425: E/AndroidRuntime(16405): at twitter4j.aq.<init>(Unknown Source)
04-18 12:05:25.425: E/AndroidRuntime(16405): at twitter4j.al.<init>(Unknown Source)
04-18 12:05:25.425: E/AndroidRuntime(16405): at twitter4j.ao.a(Unknown Source)
04-18 12:05:25.425: E/AndroidRuntime(16405): at twitter4j.ao.a(Unknown Source)
04-18 12:05:25.425: E/AndroidRuntime(16405): at com.mobinius.creativepad.c.f.<init>(Unknown Source)
04-18 12:05:25.425: E/AndroidRuntime(16405): at com.mobinius.creativepad.c.a.<init>(Unknown Source)
04-18 12:05:25.425: E/AndroidRuntime(16405): at com.mobinius.creativepad.android.OpenScreenActivity.e(Unknown Source)
04-18 12:05:25.425: E/AndroidRuntime(16405): at com.mobinius.creativepad.android.OpenScreenActivity.onClick(Unknown Source)
04-18 12:05:25.425: E/AndroidRuntime(16405): at android.view.View.performClick(View.java:4232)
04-18 12:05:25.425: E/AndroidRuntime(16405): at android.view.View$PerformClick.run(View.java:17298)
04-18 12:05:25.425: E/AndroidRuntime(16405): at android.os.Handler.handleCallback(Handler.java:615)
04-18 12:05:25.425: E/AndroidRuntime(16405): at android.os.Handler.dispatchMessage(Handler.java:92)
04-18 12:05:25.425: E/AndroidRuntime(16405): at android.os.Looper.loop(Looper.java:137)
04-18 12:05:25.425: E/AndroidRuntime(16405): at android.app.ActivityThread.main(ActivityThread.java:4921)
04-18 12:05:25.425: E/AndroidRuntime(16405): at java.lang.reflect.Method.invokeNative(Native Method)
04-18 12:05:25.425: E/AndroidRuntime(16405): at java.lang.reflect.Method.invoke(Method.java:511)
04-18 12:05:25.425: E/AndroidRuntime(16405): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
04-18 12:05:25.425: E/AndroidRuntime(16405): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
04-18 12:05:25.425: E/AndroidRuntime(16405): at dalvik.system.NativeStart.main(Native Method)
04-18 12:05:25.425: E/AndroidRuntime(16405): Caused by: java.lang.AssertionError: java.lang.NoSuchMethodException: <init> [interface twitter4j.b.a.d]
04-18 12:05:25.425: E/AndroidRuntime(16405): at twitter4j.b.a.e.<clinit>(Unknown Source)
04-18 12:05:25.425: E/AndroidRuntime(16405): ... 22 more
04-18 12:05:25.425: E/AndroidRuntime(16405): Caused by: java.lang.NoSuchMethodException: <init> [interface twitter4j.b.a.d]
04-18 12:05:25.425: E/AndroidRuntime(16405): at java.lang.Class.getConstructorOrMethod(Class.java:460)
04-18 12:05:25.425: E/AndroidRuntime(16405): at java.lang.Class.getConstructor(Class.java:431)
04-18 12:05:25.425: E/AndroidRuntime(16405):
回答1:
The class is not public, so you should remove the "public" keyword in your -keep option, or the template won't match.
来源:https://stackoverflow.com/questions/15879259/classnotfoundexception-twitter4j-conf-propertyconfigurationfactory-android