2016-08-26 2 views
0
package com.hope.carwallpapers.extra; 

import java.lang.reflect.Field; 

/** 
* Created by croma on 21-08-2016. 
*/ 
public class StringLensFlare { 
    public final static String O_1 = "{\"I\":\"p(1)\",\"ow\":768,\"oh\":491,\"data\":[{\"image\":\"two\",\"fw\":389,\"fh\":235,\"fx\":162,\"fy\":187},{\"image\":\"one\",\"fw\":389,\"fh\":235,\"fx\":461,\"fy\":187}]}"; 
    public final static String O_2 = "{\"I\":\"p(2)\",\"ow\":768,\"oh\":512,\"data\":[{\"image\":\"two\",\"fw\":757,\"fh\":450,\"fx\":11,\"fy\":0},{\"image\":\"two\",\"fw\":381,\"fh\":227,\"fx\":0,\"fy\":99}]}"; 

public static String getDeclare(int i) { 

    try { 
     StringLensFlare stringLensFlare = new StringLensFlare(); 
     Field f = stringLensFlare.getClass().getDeclaredField("O_" + i); 
     f.setAccessible(true); 
     return f.get(stringLensFlare).toString(); 

    } catch (Exception e) { 

    } 
    return ""; 
} 
};; 

это мой публичные статический подало удалить после ProGuard я уже добавил впосле Proguard публичного статического поля удалит

proguard.txt file as-keepclasseswithmembernames class * { 
    native <methods>; 
} 

ответ

0

Вы обращаетесь к общественности статического поля с помощью отражения, таким образом, вы должны инструктировать ProGuard держать его:

-keep class StringLensFlare { 
    static java.lang.String O_*; 
} 

другое правило, что вы уже довольно много бесполезной для этого случая и совершенно не связаны.

Смежные вопросы