Android 数据库和应用程序的首次运行

Android 数据库和应用程序的首次运行,android,Android,所以我必须更新我的数据库并重新启动我的应用程序。然而,当我这样做时,我得到了下面列出的一个运行时错误。我不知道为什么这里会出错,但似乎一切都正常 06-13 08:53:32.843: W/dalvikvm(10574): threadid=1: thread exiting with uncaught exception (group=0x41594360) 06-13 08:53:32.903: E/AndroidRuntime(10574): FATAL EXCEPTION

所以我必须更新我的数据库并重新启动我的应用程序。然而,当我这样做时,我得到了下面列出的一个运行时错误。我不知道为什么这里会出错,但似乎一切都正常

    06-13 08:53:32.843: W/dalvikvm(10574): threadid=1: thread exiting with uncaught exception (group=0x41594360)
    06-13 08:53:32.903: E/AndroidRuntime(10574): FATAL EXCEPTION: main
    06-13 08:53:32.903: E/AndroidRuntime(10574): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.projectcaruso.naturalfamilyplaning/com.projectcaruso.naturalfamilyplaning.FragmentChange}: java.lang.NullPointerException
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at android.app.ActivityThread.access$700(ActivityThread.java:143)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at android.os.Handler.dispatchMessage(Handler.java:99)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at android.os.Looper.loop(Looper.java:137)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at android.app.ActivityThread.main(ActivityThread.java:4950)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at java.lang.reflect.Method.invokeNative(Native Method)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at java.lang.reflect.Method.invoke(Method.java:511)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at dalvik.system.NativeStart.main(Native Method)
    06-13 08:53:32.903: E/AndroidRuntime(10574): Caused by: java.lang.NullPointerException
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at com.projectcaruso.naturalfamilyplaning.WelcomeFragment.onCreateView(WelcomeFragment.java:111)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:551)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1178)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at android.app.Activity.performStart(Activity.java:5187)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2083)
    06-13 08:53:32.903: E/AndroidRuntime(10574):    ... 11 more
这是一个类:它说它出错的那一行是111
mlblEmail.setVisibility(View.GONE)

公共类WelcomeFragment扩展了片段{
私人UiLifecycleHelper uiHelper;
网络视图;
TextView mName、mother、mlblEmail、mlblName、mlblotter;
图像视图模拟图像;
登录按钮mAuthButton;
最终静态整数授权\活动\结果\代码=0;
字符串[]权限={“用户关系”};
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}       
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
super.onCreate(savedInstanceState);
视图=充气机。充气(R.layout.fragment\u welcome,null);
uiHelper=newUILifecycleHelper(getActivity(),回调);
uiHelper.onCreate(savedInstanceState);
字符串about=getResources().getString(R.String.about_msg);
mName=(TextView)view.findViewById(R.id.txtName);
mother=(TextView)view.findViewById(R.id.txtOther);
mImage=(ImageView)view.findViewById(R.id.profilepicture);
mAuthButton=(LoginButton)view.findViewById(R.id.authButton);
about=about.replace(“\\”,“”);
about=“”
+“

” +关于+“

” + ""; mWebView=((WebView)view.findViewById(R.id.about)); loadData(关于“text/html”、“utf-8”); //获取数据 游标c=getActivity().getContentResolver().query(StatusProvider.CONTENT\u URI\u USER,null,null,null); if((c.moveToFirst())&&(c.getCount()>0)) { mAuthButton.setVisibility(View.GONE); mName.setText(c.getString(c.getColumnIndex(StatusData.KEY_USER_NAME));//NAME //new ImageDownloader().execute(c.getString(c.getColumnIndex(StatusData.KEY_USER_EMAIL));//调用asynctask mother.setText(c.getString(c.getColumnIndex(StatusData.KEY_USER_OTHER));//重要的_OTHER 水渠aq=新水渠(视图); //按url返回缓存的文件,如果url未缓存,则返回null File File=aq.getCachedFile(c.getString(c.getColumnIndex(StatusData.KEY\u USER\u PICTURE)); if(file==null){ Log.i(“PROJECTCARUSO”,“未在文件中找到用户图片”); //将图像从网络加载到ImageView,将图像缓存到文件和内存 aq.id(R.id.profilepicture).image(c.getString(c.getColumnIndex(StatusData.KEY\u USER\u PICTURE)); }否则{ Log.i(“PROJECTCARUSO”,“在文件中找到用户图片”); 位图myBitmap=BitmapFactory.decodeFile(file.getAbsolutePath()); 设置图像位图(myBitmap); } Log.i(“PROJECTCARUSO”,“在数据库中找到用户信息”); }否则{ mlblName=(TextView)view.findViewById(R.id.lblName); mlblotter=(TextView)view.findViewById(R.id.lblOther); //隐藏一切 mName.setVisibility(View.GONE); 母亲.setVisibility(View.GONE); mImage.setVisibility(View.GONE); mlblName.setVisibility(View.GONE); mlblEmail.setVisibility(View.GONE); mlblotter.setVisibility(View.GONE); Log.i(“PROJECTCARUSO”,“在数据库中未找到用户信息”); } mAuthButton.setFragment(this); mAuthButton.setReadPermissions(Arrays.asList(“email”); 返回视图; } 公共视图(){ //获取数据 游标c=getActivity().getContentResolver().query(StatusProvider.CONTENT\u URI\u USER,null,null,null); if((c.moveToFirst())&&(c.getCount()>0)) { mAuthButton.setVisibility(View.GONE); //展示一切 mName.setVisibility(View.VISIBLE); setVisibility(View.VISIBLE); mImage.setVisibility(View.VISIBLE); mlblName.setVisibility(View.VISIBLE); mlblEmail.setVisibility(View.VISIBLE); mlblotter.setVisibility(View.VISIBLE); mName.setText(c.getString(c.getColumnIndex(StatusData.KEY_USER_NAME));//NAME //new ImageDownloader().execute(c.getString(c.getColumnIndex(StatusData.KEY_USER_EMAIL));//调用asynctask mother.setText(c.getString(c.getColumnIndex(StatusData.KEY_USER_OTHER));//重要的_OTHER AQuery aq=新的AQuery(getActivity()); //按url返回缓存的文件,如果url未缓存,则返回null File File=aq.getCachedFile(c.getString(c.getColumnIndex(StatusData.KEY\u USER\u PICTURE)); if(file==null){ Log.i(“PROJECTCARUSO”,“未在文件中找到用户图片”); //将图像从网络加载到ImageView,将图像缓存到文件和内存 aq.id(R.id.profilepicture).image(c.getString(c.getColumnIndex(StatusData.KEY\u USER\u PICTURE)); }否则{ Log.i(“PROJECTCARUSO”,“在文件中找到用户图片”); 位图myBitmap=BitmapFactory.decodeFile(file.getAbsolutePath()); 设置图像位图(myBitmap); } Log.i(“PROJECTCARUSO”,“在数据库中找到用户信息”); }否则{ Log.i(“PROJECTCARUSO”,“在数据库中未找到用户信息”); } } private void OnSessionState更改(会话、会话状态、异常){ if(state.isOpened()){ //请求用户数据并显示结果 Request.executeRequestAsync(会话,新R
public class WelcomeFragment extends Fragment {

    private UiLifecycleHelper uiHelper;
    WebView mWebView;
    TextView mName, mother, mlblEmail, mlblName, mlblOther;
    ImageView mImage;
    LoginButton mAuthButton;


    final static int AUTHORIZE_ACTIVITY_RESULT_CODE = 0;
    String[] permissions = { "user_relationships" };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }       

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        View view = inflater.inflate(R.layout.fragment_welcome, null);

        uiHelper = new UiLifecycleHelper(getActivity(), callback);
        uiHelper.onCreate(savedInstanceState);

        String about = getResources().getString(R.string.about_msg);
        mName = (TextView) view.findViewById(R.id.txtName);

        mother = (TextView) view.findViewById(R.id.txtOther);   
        mImage = (ImageView) view.findViewById(R.id.profilepicture);  
        mAuthButton = (LoginButton) view.findViewById(R.id.authButton);

        about = about.replace("\\", "");
        about = "<html><body>"
                + "<p align=\"justify\">" 
                + about + "</p> "
                + "</body></html>";
        mWebView = ((WebView) view.findViewById(R.id.about));
        mWebView.loadData(about, "text/html", "utf-8");

        // Get the data
        Cursor c = getActivity().getContentResolver().query(StatusProvider.CONTENT_URI_USER, null, null, null, null);

        if((c.moveToFirst()) && (c.getCount()>0))
        {
            mAuthButton.setVisibility(View.GONE);
            mName.setText(c.getString(c.getColumnIndex(StatusData.KEY_USER_NAME))); //name


            //new ImageDownloader().execute(c.getString(c.getColumnIndex(StatusData.KEY_USER_EMAIL)); //call asynctask
            mother.setText(c.getString(c.getColumnIndex(StatusData.KEY_USER_OTHER))); //significant_other


            AQuery aq = new AQuery(view);

           //returns the cached file by url, returns null if url is not cached
            File file = aq.getCachedFile(c.getString(c.getColumnIndex(StatusData.KEY_USER_PICTURE)));

            if (file == null) {
                Log.i("PROJECTCARUSO", "Did not find user picture on file" );
                //load an image to an ImageView from network, cache image to file and memory
                aq.id(R.id.profilepicture).image(c.getString(c.getColumnIndex(StatusData.KEY_USER_PICTURE)));
            } else {
                Log.i("PROJECTCARUSO", "Found user picture on file" );
                Bitmap myBitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
                mImage.setImageBitmap(myBitmap);
            }

            Log.i("PROJECTCARUSO", "Found user information in database" );
        } else {

            mlblName = (TextView) view.findViewById(R.id.lblName);

            mlblOther = (TextView) view.findViewById(R.id.lblOther);

            //Hide everything
            mName.setVisibility(View.GONE);

            mother.setVisibility(View.GONE);
            mImage.setVisibility(View.GONE);
            mlblName.setVisibility(View.GONE);
            mlblEmail.setVisibility(View.GONE);
            mlblOther.setVisibility(View.GONE);

            Log.i("PROJECTCARUSO", "Did not find user information in database" );
        }

        mAuthButton.setFragment(this);
        mAuthButton.setReadPermissions(Arrays.asList("email"));

        return view;
    }   

    public void refreshView(){

        // Get the data
        Cursor c = getActivity().getContentResolver().query(StatusProvider.CONTENT_URI_USER, null, null, null, null);

        if((c.moveToFirst()) && (c.getCount()>0))
        {
            mAuthButton.setVisibility(View.GONE);


            //Show everything
            mName.setVisibility(View.VISIBLE);

            mother.setVisibility(View.VISIBLE);
            mImage.setVisibility(View.VISIBLE);
            mlblName.setVisibility(View.VISIBLE);
            mlblEmail.setVisibility(View.VISIBLE);
            mlblOther.setVisibility(View.VISIBLE);

            mName.setText(c.getString(c.getColumnIndex(StatusData.KEY_USER_NAME))); //name


            //new ImageDownloader().execute(c.getString(c.getColumnIndex(StatusData.KEY_USER_EMAIL)); //call asynctask
            mother.setText(c.getString(c.getColumnIndex(StatusData.KEY_USER_OTHER))); //significant_other


            AQuery aq = new AQuery(getActivity());

           //returns the cached file by url, returns null if url is not cached
            File file = aq.getCachedFile(c.getString(c.getColumnIndex(StatusData.KEY_USER_PICTURE)));

            if (file == null) {
                Log.i("PROJECTCARUSO", "Did not find user picture on file" );
                //load an image to an ImageView from network, cache image to file and memory
                aq.id(R.id.profilepicture).image(c.getString(c.getColumnIndex(StatusData.KEY_USER_PICTURE)));
            } else {
                Log.i("PROJECTCARUSO", "Found user picture on file" );
                Bitmap myBitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
                mImage.setImageBitmap(myBitmap);
            }

            Log.i("PROJECTCARUSO", "Found user information in database" );
        } else {
            Log.i("PROJECTCARUSO", "Did not find user information in database" );
        }


    }

    private void onSessionStateChange(Session session, SessionState state, Exception exception) {
        if (state.isOpened()) {

            // Request user data and show the results
            Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {

                @Override
                public void onCompleted(GraphUser user, Response response) {
                    if (user != null) {

                        // Get the user info
                        Log.i("PROJECTCARUSO", "Getting the reponse data! ");

                        Utility.userUID = user.getId();
                        final String name = user.getName();
                        final String fname = user.getFirstName();
                        final String username = user.getUsername();
                        final String email = (String) user.getProperty("email");
                        String picURL = null;
                        String significant_other = null;

                        try {
                            String inputLine = user.getProperty("significant_other").toString();
                            JSONObject json = new JSONObject(inputLine.toString());
                            significant_other = json.get("name").toString();
                        } catch (JSONException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }

                        picURL = "http://graph.facebook.com/"+Utility.userUID+"/picture";
                        Log.i("PROJECTCARUSO", "Logged in...");

                        try{            
                                ContentValues values = new ContentValues();
                                values.put(StatusData.KEY_USER_ROWID, Utility.userUID);
                                values.put(StatusData.KEY_USER_NAME, name);
                                values.put(StatusData.KEY_USER_FNAME, fname);
                                values.put(StatusData.KEY_USER_USERNAME, username);
                                values.put(StatusData.KEY_USER_EMAIL, email);
                                values.put(StatusData.KEY_USER_PICTURE, picURL);
                                values.put(StatusData.KEY_USER_OTHER, significant_other);


                                StatusData StatusData = new StatusData(getActivity());

                                StatusData.insertOrReplaceUser(values);

                                Log.i("PROJECTCARUSO", "Insert of facebook information was successfull ");
                                refreshView();
                        } catch (Exception e ) {
                            Log.i("PROJECTCARUSO", "Insert of facebook information was not successfull ");
                        }
                    }
                }
            });

        } else if (state.isClosed()) {
            Log.i("PROJECTCARUSO", "Logged out...");
            Log.i("PROJECTCARUSO", "Exception: " + exception);
        }
    }


    private Session.StatusCallback callback = new Session.StatusCallback() {
        @Override
        public void call(Session session, SessionState state, Exception exception) {
            onSessionStateChange(session, state, exception);
        }
    };

    @Override
    public void onResume() {
        super.onResume();

        // For scenarios where the main activity is launched and user
        // session is not null, the session state change notification
        // may not be triggered. Trigger it if it's open/closed.
        Session session = Session.getActiveSession();
        if (session != null &&
               (session.isOpened() || session.isClosed()) ) {
            onSessionStateChange(session, session.getState(), null);
        }

        uiHelper.onResume();
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        uiHelper.onActivityResult(requestCode, resultCode, data);
    }

    @Override
    public void onPause() {
        super.onPause();
        uiHelper.onPause();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        uiHelper.onDestroy();
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        uiHelper.onSaveInstanceState(outState);
    }


}
      mlblEmail =(TextView) view.findViewById(R.id.textview);