Thursday, March 1, 2012

Re: Proguard Causes "The RequestFactory ValidationTool must be run" Error

RequestFactory uses the name of the classes and methods to lookup "obfuscated tokens" to send over the wire (and the reverse, when processing the response from the server), so you have to keep your RF interfaces (services and proxies) names untouched, or change the class and method names –as string literals– in the generated <NameOfYourRequestFactoryInterfaceHere>DeofuscatorBuilder class to the ones generated by Proguard.


On Thursday, March 1, 2012 12:27:36 AM UTC+1, Double wrote:
Title pretty much says it, when I have proguard enabled I get the error, when I disable it (or run in debug mode) everything is fine. Any help would be appreciated.


Stack Trace:
02-29 17:24:04.195: E/AndroidRuntime(18174): FATAL EXCEPTION: IntentService[at email]
02-29 17:24:04.195: E/AndroidRuntime(18174): java.lang.RuntimeException: The RequestFactory ValidationTool must be run for the com.project.mms.a.a RequestFactory type
02-29 17:24:04.195: E/AndroidRuntime(18174): at com.google.e.a.c.b.a.b.a(Unknown Source)
02-29 17:24:04.195: E/AndroidRuntime(18174): at com.google.e.a.c.b.e.<init>(Unknown Source)
02-29 17:24:04.195: E/AndroidRuntime(18174): at com.google.e.a.c.b.h.a(Unknown Source)
02-29 17:24:04.195: E/AndroidRuntime(18174): at com.project.mms.w.a(Unknown Source)
02-29 17:24:04.195: E/AndroidRuntime(18174): at com.project.mms.o.a(Unknown Source)
02-29 17:24:04.195: E/AndroidRuntime(18174): at com.project.mms.C2DMReceiver.a(Unknown Source)
02-29 17:24:04.195: E/AndroidRuntime(18174): at com.google.android.c2dm.C2DMBaseReceiver.onHandleIntent(Unknown Source)
02-29 17:24:04.195: E/AndroidRuntime(18174): at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:59)
02-29 17:24:04.195: E/AndroidRuntime(18174): at android.os.Handler.dispatchMessage(Handler.java:99)
02-29 17:24:04.195: E/AndroidRuntime(18174): at android.os.Looper.loop(Looper.java:143)
02-29 17:24:04.195: E/AndroidRuntime(18174): at android.os.HandlerThread.run(HandlerThread.java:60)




Proguard file:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class com.android.vending.licensing.ILicensingService
-keep class info.guardianproject.database.** {*;}
-keep class info.guardianproject.database.sqlcipher.** {*;}
-keep class com.project.mms.ui.* {*;}

-libraryjars /libs/guava-r09.jar
-libraryjars /libs/commons-codec.jar
-libraryjars /libs/sqlcipher.jar
-libraryjars /libs/jsr305-1.3.9.jar
-libraryjars c:/android-sdk-windows/platforms/android-8/android.jar
-verbose

-dontwarn sun.misc.Unsafe

-keepclasseswithmembers class * {
    native <methods>;
}

-keepclasseswithmembers class * {
    native <methods>;
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}

# Needed by google-api-client to keep generic types and @Key annotations accessed via reflection
-keepclassmembers class * {
  @com.google.api.client.util.Key <fields>;
}
-keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault
# Needed by Guava
-dontwarn sun.misc.Unsafe

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/CNRthqhWLakJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.

No comments:

Post a Comment