如何使用getFilesDir()?

时间:2018-07-29 00:47:18

标签: android android-sdcard

我正在尝试获取应用程序的根目录,但出现以下异常。我什至定义了我的上下文。我该如何解决?从过去的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);

1 个答案:

答案 0 :(得分:2)

您不能在创建时拨打这些电话。在调用super.onCreate()之后,上下文才有效。将所有这些代码移到onCreate上,应该没问题。尽管制作ContextWrapper有点浪费-Activity是Context,但是直接在此上调用getFilesDir。