Java 向项目中添加DatePickerDialog时出现问题

Java 向项目中添加DatePickerDialog时出现问题,java,android-studio,Java,Android Studio,在使用安卓Studio时,我会将DatePicker添加到我的应用程序中 import android.support.v4.app.DialogFragment; public static class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener { @Over

在使用安卓Studio时,我会将
DatePicker
添加到我的应用程序中

import      android.support.v4.app.DialogFragment;

     public static class DatePickerFragment extends DialogFragment
                                implements DatePickerDialog.OnDateSetListener {

        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            // Use the current date as the default date in the picker
            final Calendar c = Calendar.getInstance();
            int year = c.get(Calendar.YEAR);
            int month = c.get(Calendar.MONTH);
            int day = c.get(Calendar.DAY_OF_MONTH);

            // Create a new instance of DatePickerDialog and return it
            return new DatePickerDialog(getActivity(), this, year, month, day);
        }

        public void onDateSet(DatePicker view, int year, int month, int day) {
            // Do something with the date chosen by the user
        }
    }
问题是我甚至不能编译这个项目。以下是错误:

Error:(6, 42) java: cannot find symbol
  symbol: class DialogFragment
Error:(7, 36) java: package DatePickerDialog does not exist
我尝试导入android.support.v4.app.DialogFragment,但它不存在。我还将我的项目设置为API11,因为这是该控件的最低API级别。有什么想法吗

我让datePicker以某种方式工作,但现在我在打开包含datePicker的活动时出错:

07-16 18:17:36.274    1822-1822/mycalories.com.jalle.mycalories D/AndroidRuntime﹕ Shutting down VM
07-16 18:17:36.274    1822-1822/mycalories.com.jalle.mycalories W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0xa4db2b20)
07-16 18:17:36.274    1822-1822/mycalories.com.jalle.mycalories E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: mycalories.com.jalle.mycalories, PID: 1822
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{mycalories.com.jalle.mycalories/mycalories.com.jalle.mycalories.MealsEditActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at android.app.Activity.findViewById(Activity.java:1884)
            at mycalories.com.jalle.mycalories.MealsEditActivity.<init>(MealsEditActivity.java:23)
            at java.lang.Class.newInstanceImpl(Native Method)
            at java.lang.Class.newInstance(Class.java:1208)
            at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)

此活动有什么问题?

您是否已将android支持库添加到应用程序的build.gradle

例如:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v4:+'
}
然后试着重建它

例外情况:

下面这行

setContentView(R.layout.meals_edit);

我想知道为什么我的问题被编辑了?我写了,这是我希望URL显示的方式,不像“示例”。URL更具描述性,因为有人已经知道它是关于什么的,所以他不必打开链接。SO上有言论自由吗?堆栈溢出问题和答案是由社区维护的wiki。如果由声誉低于3000的用户进行编辑,则必须经过批准流程,但实际上,很少有编辑被拒绝。我不确定我的ap是否是用gradle构建的。我怎么检查呢?在安卓工作室。。。在您的项目中将有一个build.gradle文件。。。下面是一个示例:转到“项目结构”对话框,从列表中选择您的模块,转到“依赖项”选项卡,单击+按钮,选择“库”,然后从显示的列表中添加对v4支持库的依赖项。这样你就不必在Gradle文件中乱搞,也不可能在错误的文件中进行编辑(你的项目中有多个build.Gradle文件)。我已经创建了新的android studio项目,并将我所有的分类和资源都转移到了新项目中。现在projesct使用了gradle系统。只有一个问题让MealEdit活动在开场时崩溃了(贴在上面)你知道为什么吗?
public final EditText txtDate=(EditText) findViewById(R.id.txtDate);
setContentView(R.layout.meals_edit);