Open jhwsx opened 4 years ago
反编译apk,看下这个java.lang.String u.a.h.c.d()
是啥呢
定位到是在这里, 对应的源码是在,
public class SkinPreference {
private static final String FILE_NAME = "meta-data";
private static final String KEY_SKIN_NAME = "skin-name";
private static final String KEY_SKIN_STRATEGY = "skin-strategy";
private static final String KEY_SKIN_USER_THEME = "skin-user-theme-json";
private static SkinPreference sInstance;
private final Context mApp;
private final SharedPreferences mPref;
private final SharedPreferences.Editor mEditor;
public static void init(Context context) {
if (sInstance == null) {
synchronized (SkinPreference.class) {
if (sInstance == null) {
sInstance = new SkinPreference(context.getApplicationContext());
}
}
}
}
public static SkinPreference getInstance() {
return sInstance;
}
private SkinPreference(Context applicationContext) {
mApp = applicationContext;
mPref = mApp.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);
mEditor = mPref.edit();
}
public SkinPreference setSkinName(String skinName) {
mEditor.putString(KEY_SKIN_NAME, skinName);
return this;
}
public String getSkinName() {
return mPref.getString(KEY_SKIN_NAME, "");
}
public SkinPreference setSkinStrategy(int strategy) {
mEditor.putInt(KEY_SKIN_STRATEGY, strategy);
return this;
}
public int getSkinStrategy() {
return mPref.getInt(KEY_SKIN_STRATEGY, SkinCompatManager.SKIN_LOADER_STRATEGY_NONE);
}
public SkinPreference setUserTheme(String themeJson) {
mEditor.putString(KEY_SKIN_USER_THEME, themeJson);
return this;
}
public String getUserTheme() {
return mPref.getString(KEY_SKIN_USER_THEME, "");
}
public void commitEditor() {
mEditor.apply();
}
}
推测是由于某种原因 SkinPreference
没有完成初始化。另外说一下我们的场景,我们这个页面是从后台弹出的,是替换来电的页面,不知道跟这个有没有关系。
84% 集中的设备是 vivo 8.1.0。
现在的对策是:自己再调用一下 SkinPreference.init(this);
,等线上之后看一下效果。
大神,这个报错能帮忙看一下吗?
在 mapping.txt 中,没有找到
'java.lang.String u.a.h.c.d()
对应的代码。 使用的版本是 4.0.5