1. 程式人生 > >Android 最強工具類的使用 .blankj:utilcode

Android 最強工具類的使用 .blankj:utilcode

一, 引入

這幾天專案要做sharedprefences , 原生的寫的很麻煩 , 於是用 utilcode , 來儲存, 坑爹的是找到了 , 都不會用 

compile 'com.blankj:utilcode:1.13.5'

二,初試 直接報錯  

spUtils = SPUtils.getInstance(SPUTILS);
 Caused by: java.lang.NullPointerException: u should init first
                                                                             at com.blankj.utilcode.util.Utils.getApp(Utils.java:98)
                                                                             at com.blankj.utilcode.util.SPUtils.<init>(SPUtils.java:53)

                                                                             at com.blankj.utilcode.util.SPUtils.getInstance(SPUtils.java:46)

 at com.shinelon.sputils_boke.MainActivity.onCreate(MainActivity.java:30)

                                                                             at android.app.Activity.performCreate(Activity.java:6237)

一看知道了是空指標的問題

三.分錯  

   分析錯誤可以得出是要進行例項化的 來的 

Utils.init(this);
spUtils = SPUtils.getInstance(SPUTILS);
package com.shinelon.sputils_boke;
import android.app.Application;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import 
android.widget.TextView; import com.blankj.utilcode.util.SPUtils; import com.blankj.utilcode.util.Utils; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; public class MainActivity extends AppCompatActivity { @BindView(R.id.et_save) EditText etSave; @BindView(R.id.tv_show) TextView tvShow; private static final String SPUTILS = "sputils"; private SPUtils spUtils; private Application app; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); Utils.init(this); spUtils = SPUtils.getInstance(SPUTILS); } @OnClick({R.id.bt_save, R.id.bt_read}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.bt_save: spUtils.put("save",etSave.getText().toString()); break; case R.id.bt_read: tvShow.setText(spUtils.getString("save")); break; } } }