我正在尝试获取应用程序的根目录,但出现以下异常。我什至定义了我的上下文。我该如何解决?从过去的3个小时开始,我就一直坚持下去。
ContextWrapper c = new ContextWrapper(this);
String FileDirectory = c.getFilesDir().getPath();
例外:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.File android.content.Context.getFilesDir()' on a null object reference
编辑:
public class MainActivity extends AppCompatActivity {
public static final int DIALOG_DOWNLOAD_PROGRESS = 0;
private ProgressDialog mProgressDialog;
ContextWrapper c = new ContextWrapper(this);
File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
String FileDirectory = c.getFilesDir().getPath();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
答案 0 :(得分:2)
您不能在创建时拨打这些电话。在调用super.onCreate()之后,上下文才有效。将所有这些代码移到onCreate上,应该没问题。尽管制作ContextWrapper有点浪费-Activity是Context,但是直接在此上调用getFilesDir。