开发者社区> 问答> 正文

android 项目问题 求大神指导一下 ?报错

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences com.edu.buu.oplayer.OPlayerApplication.getSharedPreferences(java.lang.String, int)' on a null object reference

public class OPreference {
private static final String PREFERENCE_NAME = "preference.db";
private SharedPreferences mPreference;
public OPreference() {
mPreference = OPlayerApplication.getApplication().
getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); //这句话报错
}
public class OPlayerApplication extends Application {


private static OPlayerApplication mApplication;


/** OPlayer SD卡缓存路 */
public static final String OPLAYER_CACHE_BASE = Environment.getExternalStorageDirectory() + "/oplayer";
/** 视频截图缓冲路径 */
public static final String OPLAYER_VIDEO_THUMB = OPLAYER_CACHE_BASE + "/thumb/";
/** 首次扫描 */
public static final String PREF_KEY_FIRST = "application_first";


@Override
public void onCreate() {
super.onCreate();
mApplication = this;
init();
}


private void init() {
//创建缓存目录
FileUtils.createIfNoExists(OPLAYER_CACHE_BASE);
FileUtils.createIfNoExists(OPLAYER_VIDEO_THUMB);
}


public static OPlayerApplication getApplication() {
return mApplication;
}


public void destory() {
mApplication = null;
}
}

展开
收起
爱吃鱼的程序员 2020-06-09 16:25:04 402 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    查一下你的manifest,有没有把<spanstyle="font-family:Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">OPlayerApplication加入applicationtag里。  你做一些耗时的AsyncTask,当getActivity()执行部分,Activity已被摧毁。所以getActivity()返回null,这是很正确的。
      
      你应该做的是在你的线程或AsyncTask,你应该检查是否getActivity()为空,在<spanstyle="font-size:13.3333px;">Activity主机的情况下你的Fragment已经被摧毁了。

    2020-06-09 16:25:21
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载