SciChart® the market leader in Fast WPF Charts, WPF 3D Charts, and now iOS Charting & Android Chart Components

Welcome to the SciChart Community Forums!

Please use the forums below to ask questions about SciChart. Take a moment to read our Question asking guidelines on how to ask a good question and our support policy. We also have a tag=SciChart on where you can earn rep for your questions!

Please note: SciChart team will only answer questions from customers with active support subscriptions. Expired support questions will be ignored. If your support status shows incorrectly, contact us and we will be glad to help.


What are the Proguard rules for SciChart?
Does any of the charting/core/data/drawing component uses reflection?

  • You must to post comments

Hi there,

As I’m aware of SciChart Android doesn’t use reflection which could cause problem with ProGuard minifacation process. So I think it just should work without any special rules for SciChart libraries.

Best regards,

  • abc def
    cant survive proguard, the error given: JNI DETECTED ERROR IN APPLICATION: java_class == null in call to GetMethodID from void com.scichart.charting.visuals.renderableSeries.SeriesDrawingManager.initialize()
  • You must to post comments

Hi abc def (what’s your name btw?)

I’ve attached our pro guard rules below. Does this help?

# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in C:/Program Files/Android/sdk/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

# Add any project specific keep options here:

# typical library config from
-renamesourcefileattribute SourceFile
-keepattributes Exceptions,InnerClasses,Signature,Deprecated, SourceFile,LineNumberTable,*Annotation*,EnclosingMethod

# skip public classes + its protected and public methods, fields etc.
-keep public class * {
    public protected *;

# These methods are inserted by the javac compiler and the jikes compiler respectively, in JDK 1.2 and older, to implement the .class construct.
# ProGuard will automatically detect them and deal with them, even when their names have been obfuscated. However, other obfuscators may rely on the original method names.
# It may therefore be helpful to preserve them, in case these other obfuscators are ever used for further obfuscation of the library.
-keepclassmembernames class * {
    java.lang.Class class$(java.lang.String);
    java.lang.Class class$(java.lang.String, boolean);

# leave native methods - we need to save method's names to correctly call C++ code
-keepclasseswithmembernames,includedescriptorclasses class * {
    native <methods>;

# need to preserve some methods for enum classes
-keepclassmembers,allowoptimization enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
  • abc def
    haha, my name is in my email addr. “abd def” was just to speed up registration process. Only made it work by applying this rule. -keep public class com.scichart.** { public protected *; }. had to keep everything, it seems native code accesses some java methods. e.g. Point2DSeries#setSize() method not found in native lib. I used proguard-android-optimize, probably it stripped it away.
  • You must to post comments
Showing 2 results
Your Answer

Please first to submit.