Coova
Coova

Reputation: 1858

App opens and closes immediately, without crashing

The app opens briefly to a white screen and closes almost immediately after. I would say the time frame is about 1-2 seconds.

I have tried uninstalling the app, clearing the cache, etc..

When debugging the app I do not see anything that stands out. Here is the stacktrace involved during app opening/closing.

I tried placing a breakpoint within the OnCreate() of MainActivity and it does not ever get hit. It almost seems as if it doesn't get to the MainActivity.

What could cause something of this nature?

09-30 09:02:42.225: E/WiFiOffloadingService(1189): setisWifiOntrue
    09-30 09:02:42.225: E/WiFiOffloadingService(1189): [W Offloading] getWifiOffloadingStart0
    09-30 09:02:42.225: E/WiFiOffloadingService(1189): setisWifiAPOn true
    09-30 09:02:42.395: E/jdwp(13206): Failed sending reply to debugger: Broken pipe
    09-30 09:02:42.835: E/BatteryObserver(1189): usb Uevent not necessary.
    09-30 09:02:44.525: E/[LGHome]NumberBadge.LGUnreadLgeEmailsBadge(1619): [LGUnreadLgeEmailsBadge.java:188:countUnreadItems()]Could not get cursor from provider for com.lge.email
    09-30 09:02:44.555: E/[LGHome]NumberBadge(1619): [LGNumberBadge.java:123:handleMessage()]MSG_RESPOND_RESULT_FROM_PROVIDER_FAILED
    09-30 09:02:47.755: E/BatteryObserver(1189): usb Uevent not necessary.
    09-30 09:02:47.945: E/LocSvc_afw(923): V/Entering int loc_inject_location(double, double, float) line 478 
    09-30 09:02:47.945: E/LocSvc_eng(923): I/===> int loc_eng_inject_location(loc_eng_data_s_type&, double, double, float) line 1941 
    09-30 09:02:47.945: E/LocSvc_afw(923): V/Exiting int loc_inject_location(double, double, float) line 502 0

UPDATE:

The app initially started with this type of behavior after I tried converting PictureEditActivity from a Fragment to an Activity. I modified code in both FeedActivity, and PictureEditActivity to keep the functionality.

Since the error I have reverted back to the previous code before the error, but the behavior still persists.

RESOLVED

After testing the app on another device it resulted in an error. I traced this error back to a line of code in another portion of my app involving ParseDB and registering multiple subclasses.

09-30 16:44:58.695: E/AndroidRuntime(23450): FATAL EXCEPTION: main
09-30 16:44:58.695: E/AndroidRuntime(23450): java.lang.RuntimeException: Unable to create application com.p.main.InitializeApplication: java.lang.IllegalArgumentException: Default constructor for class com.p.model.PUpload is not accessible.

AndroidManifest

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.p.main"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="13"
        android:targetSdkVersion="21" />

    <uses-permission android:name="android.permission.CAMERA" />

    <uses-feature android:name="android.hardware.camera" />

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application
        android:name=".InitializeApplication"
        android:allowBackup="true"
        android:icon="@drawable/p_logo"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Holo.Light.NoActionBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".SignUpActivity"
            android:label="@string/title_activity_sign_up"
            android:theme="@android:style/Theme.Holo.Light.NoActionBar" >
        </activity>
        <activity
            android:name=".NavigationActivity"
            android:label="@string/title_activity_navigation"
            android:theme="@android:style/Theme.Holo.Light.NoActionBar" >
        </activity>
        <activity
            android:name=".FeedActivity"
            android:label="@string/title_activity_feed"
            android:theme="@android:style/Theme.Holo.Light.NoActionBar" >
        </activity>
        <activity
            android:name=".UserActivity"
            android:label="@string/title_activity_user"
            android:theme="@android:style/Theme.Holo.Light.NoActionBar" >
        </activity>
        <activity
            android:name=".PictureEditActivity"
            android:label="@string/title_activity_picture_edit"
            android:theme="@android:style/Theme.Holo.Light.NoActionBar" >
        </activity>
    </application>

</manifest>

MainActivity

    public class MainActivity extends Activity implements OnClickListener {

    Button btnSignIn, btnSignUp;
    EditText etUsername, etPassword;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnSignIn = (Button) findViewById(R.id.btnSignIn);
        btnSignIn.setOnClickListener(this);

        btnSignUp = (Button) findViewById(R.id.btnSignUp);
        btnSignUp.setOnClickListener(this);

        etUsername = (EditText) findViewById(R.id.editTextSignInUsername);
        etPassword = (EditText) findViewById(R.id.editTextSignInPassword);

        // Check if there is a currently logged in user
        // and they are linked to a Facebook account.
        final ParseUser currentUser = ParseUser.getCurrentUser();
        if ((currentUser != null)) {

            // you can add this line &&
            // ParseFacebookUtils.isLinked(currentUser)) to if statement
            // if you want to make sure the user is also linked to facebook
            // account
            // Go to the user info activity
            showPrimaryActivity();
            finish();
        }

    }

    @Override
    public void onResume() {
        super.onResume(); // Always call the superclass method first

    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        switch (v.getId()) {
        case R.id.btnSignIn:

            String username = etUsername.getText().toString().toLowerCase()
                    .trim();
            String password = etPassword.getText().toString().toLowerCase()
                    .trim();

            try {
                if (username.isEmpty() || password.isEmpty()) {
                    if (username.isEmpty()) {
                        etUsername.setHintTextColor(getResources().getColor(
                                R.color.red));
                        etUsername.setHint("Enter Username");
                    }
                    if (password.isEmpty()) {
                        etPassword.setHintTextColor(getResources().getColor(
                                R.color.red));
                        etPassword.setHint("Enter Password");
                    }

                }
            } finally {
                if (!username.isEmpty() || !password.isEmpty()) {
                    ParseUser.logInInBackground(username, password,
                            new LogInCallback() {
                                public void done(ParseUser user,
                                        ParseException e) {
                                    if (user != null) {
                                        showPrimaryActivity();
                                        finish();
                                        // Hooray! The user is logged in.
                                    } else {

                                        etUsername.getText().clear();
                                        etUsername
                                                .setHintTextColor(getResources()
                                                        .getColor(R.color.red));
                                        etUsername.setHint("Invalid Username");

                                        etPassword.getText().clear();
                                        etPassword
                                                .setHintTextColor(getResources()
                                                        .getColor(R.color.red));
                                        etPassword.setHint("Invalid Password");
                                        Log.e("LOGIN FAILED",
                                                "FAILED TO LOG IN");
                                        // Signup failed. Look at the
                                        // ParseException to see what happened.
                                    }
                                }
                            });
                }

            }
            break;

        case R.id.btnSignUp:
            Intent intent1 = new Intent(this, SignUpActivity.class);
            startActivity(intent1);
            break;
        }

    }

    private void showPrimaryActivity() {
        Intent intent = new Intent(this, NavigationActivity.class);
        startActivity(intent);
    }

}

NavigationActivity

public class NavigationActivity extends FragmentActivity implements
        TabHost.OnTabChangeListener {

    private TabHost mTabHost;
    private HashMap<String, TabInfo> mapTabInfo = new HashMap<String, TabInfo>();
    private TabInfo mLastTab = null;
    Context context;

    private class TabInfo {
        private String _tag;
        private int _labelId;
        private int _drawableId;
        @SuppressWarnings("rawtypes")
        private Class _class;
        private Bundle _args;
        private Fragment _fragment;

        @SuppressWarnings("rawtypes")
        TabInfo(int labelID, int drawableId, Class cl, Bundle args) {
            this._tag = "tab" + labelID;
            this._labelId = labelID;
            this._drawableId = drawableId;
            this._class = cl;
            this._args = args;
        }

        public int get_labelId() {
            return _labelId;
        }

        public int get_drawableId() {
            return _drawableId;
        }

        @SuppressWarnings("rawtypes")
        public Class get_class() {
            return _class;
        }

        public Fragment get_fragment() {
            return _fragment;
        }

        public String get_tag() {
            return _tag;
        }

    }



    class TabFactory implements TabContentFactory {

        private final Context mContext;

        /**
         * @param context
         */
        public TabFactory(Context context) {
            mContext = context;
        }

        /**
         * (non-Javadoc)
         *
         * @see android.widget.TabHost.TabContentFactory#createTabContent(java.lang.String)
         */
        public View createTabContent(String tag) {
            View v = new View(mContext);
            v.setMinimumWidth(0);
            v.setMinimumHeight(0);
            return v;
        }

    }

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_navigation);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        ViewGroup vg = (ViewGroup) findViewById(R.id.main_root);

        context = this;

        // Step 2: Setup TabHost
        initialiseTabHost(savedInstanceState);
        if (savedInstanceState != null) {
            // set the tab as per the saved state
            mTabHost.setCurrentTabByTag(savedInstanceState.getString("tab"));
        }

    }

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

    }

    private void showLoginActivity() {
        Intent intent = new Intent(context, MainActivity.class);
        startActivity(intent);
    }

    protected void onSaveInstanceState(Bundle outState) {
        outState.putString("tab", mTabHost.getCurrentTabTag()); // save the tab
        // selected
        super.onSaveInstanceState(outState);
    }

    /**
     * Step 2: Setup TabHost
     */
    private void initialiseTabHost(Bundle args) {
        mTabHost = (TabHost) findViewById(android.R.id.tabhost);
        mTabHost.setup();
        mTabHost.getTabWidget().setDividerDrawable(null);

        addTab(R.string.lbl_title, R.drawable.ico_list, FeedActivity.class,
                args);
        addTab(R.string.lbl_user, R.drawable.ico_person, UserActivity.class,
                args);

        // Default to first tab
        mTabHost.setCurrentTabByTag("tab" + R.string.lbl_title);
        this.onTabChanged("tab" + R.string.lbl_title);

        mTabHost.setOnTabChangedListener(this);
    }

    private void addTab(int labelID, int drawableId, Class cl, Bundle args) {

        TabInfo tabInfo = null;
        tabInfo = new TabInfo(labelID, drawableId, cl, args);
        this.mapTabInfo.put(tabInfo.get_tag(), tabInfo);

        TabHost.TabSpec spec = mTabHost.newTabSpec(tabInfo._tag);

        View tabIndicator = LayoutInflater.from(this).inflate(
                R.layout.tab_indicator,
                (ViewGroup) findViewById(android.R.id.tabs), false);
        TextView title = (TextView) tabIndicator.findViewById(R.id.title);
        title.setText(tabInfo.get_labelId());
        ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon);
        icon.setImageResource(tabInfo.get_drawableId());

        spec.setIndicator(tabIndicator);

        // Attach a Tab view factory to the spec
        spec.setContent(this.new TabFactory(this));
        String tag = spec.getTag();

        // Check to see if we already have a fragment for this tab, probably
        // from a previously saved state. If so, deactivate it, because our
        // initial state is that a tab isn't shown.
        tabInfo._fragment = this.getSupportFragmentManager().findFragmentByTag(
                tag);
        if (tabInfo._fragment != null && !tabInfo._fragment.isDetached()) {
            FragmentTransaction ft = this.getSupportFragmentManager()
                    .beginTransaction();
            ft.detach(tabInfo._fragment);
            ft.commit();
            this.getSupportFragmentManager().executePendingTransactions();
        }

        mTabHost.addTab(spec);
    }

    public void onTabChanged(String tag) {
        TabInfo newTab = this.mapTabInfo.get(tag);
        if (mLastTab != newTab) {
            FragmentTransaction ft = this.getSupportFragmentManager()
                    .beginTransaction();
            if (mLastTab != null) {
                if (mLastTab._fragment != null) {
                    ft.detach(mLastTab._fragment);
                }
            }
            if (newTab != null) {
                if (newTab.get_fragment() == null) {
                    newTab._fragment = Fragment.instantiate(this, newTab
                            .get_class().getName(), newTab._args);
                    ft.add(R.id.realtabcontent, newTab.get_fragment(),
                            newTab._tag);
                } else {
                    ft.attach(newTab.get_fragment());
                }
            }

            mLastTab = newTab;
            ft.commit();
            this.getSupportFragmentManager().executePendingTransactions();
        }
    }
}

FeedFragment

public class FeedActivity extends Fragment implements OnClickListener {

    ImageView m_ImageView;

    ImageButton btnCamera, btnGallery;
    private final String TAG_CAMERA_FRAGMENT = "camera_fragment";
    private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;
    private Uri fileUri;
    public static final int MEDIA_TYPE_IMAGE = 1;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.activity_feed, container, false);

        btnCamera = (ImageButton) view.findViewById(R.id.btn_Camera);
        btnCamera.setOnClickListener(this);
        btnGallery = (ImageButton) view.findViewById(R.id.btn_Gallery);
        btnGallery.setOnClickListener(this);

        return view;
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {

        case R.id.btn_Camera:
            Log.e("CAMERA", "CAMERA BUTTON PRESSED");
            takePicture();
            break;

        case R.id.btn_Gallery:
            Log.e("Gallery", "GALLERY BUTTON PRESSED");
            break;

        }

    }

    public void takePicture() {

        // create Intent to take a picture and return control to the calling
        // application
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

        fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);

        intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);

        // start the image capture Intent
        startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {

            if (resultCode == getActivity().RESULT_OK) {
                Log.e("ONACTIVITYRESULT",
                        "-----------------RESULT_OK----------------");
                Bundle bundle = new Bundle();
                bundle.putParcelable("URI", fileUri);

                Fragment fragment = new PictureEditActivity();
                fragment.setArguments(bundle);

                // Intent intent = new Intent(getActivity(),
                // PictureEditActivity.class);
                // intent.putExtra("BUNDLE", bundle);
                // startActivity(intent);

                getFragmentManager()
                        .beginTransaction()
                        .replace(R.id.contentFragment, fragment,
                                TAG_CAMERA_FRAGMENT).commit();

                if (fileUri != null) {
                    Log.e("CAMERA", "Image saved to:\n" + fileUri);
                    Log.e("CAMERA", "Image path:\n" + fileUri.getPath());
                }

            } else if (resultCode == getActivity().RESULT_CANCELED) {
                Log.e("ONACTIVITYRESULT",
                        "-----------------RESULT_CANCELLED----------------");

            } else {

            }
        }

    }

    /** Create a file Uri for saving an image or video */
    private static Uri getOutputMediaFileUri(int type) {
        return Uri.fromFile(getOutputMediaFile(type));
    }

    /** Create a File for saving an image or video */
    private static File getOutputMediaFile(int type) {
        // To be safe, you should check that the SDCard is mounted
        // using Environment.getExternalStorageState() before doing this.

        File mediaStorageDir = new File(
                Environment
                        .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
                "P");
        // This location works best if you want the created images to be shared
        // between applications and persist after your app has been uninstalled.

        // Create the storage directory if it does not exist
        if (!mediaStorageDir.exists()) {
            if (!mediaStorageDir.mkdirs()) {
                Log.d("P", "failed to create directory");
                return null;
            }
        }

        // Create a media file name
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss")
                .format(new Date());
        File mediaFile;
        if (type == MEDIA_TYPE_IMAGE) {
            mediaFile = new File(mediaStorageDir.getPath() + File.separator
                    + "IMG_" + timeStamp + ".jpg");
        } else {
            return null;
        }

        return mediaFile;
    }
}

PictureEdit

    public class PictureEditActivity extends Fragment implements OnClickListener {

    ImageView m_ImageView;
    FrameLayout m_Layout;
    LinearLayout l_Layout, d_Layout;
    ImageButton btnBorder, btnSticker, btnEffect, btnAccept, btnMust1,
            btnMust2, btnBorderHome, btnStickerHome, btnDraw;

    ImageButton btnDrawColorRed, btnDrawColorOrange, btnDrawColorYellow,
            btnDrawColorGreen, btnDrawColorBlue, btnDrawColorIndigo,
            btnDrawColorViolet, btnDrawColorPink, btnDrawColorPurple,
            btnDrawColorBlack, btnDrawColorWhite, btnDrawColorBrown;

    HorizontalScrollView home_hScrollView, border_hScrollView,
            sticker_hScrollView, random_hView;

    Context context;

    CustomPaintView p_View;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.activity_picture_edit, container,
                false);

        p_View = new CustomPaintView(getActivity());

        m_Layout = (FrameLayout) view.findViewById(R.id.root_layout);
        l_Layout = (LinearLayout) view
                .findViewById(R.id.horizontalScrollbar_Layout);
        d_Layout = (LinearLayout) view
                .findViewById(R.id.linearLayoutDrawDetail);

        home_hScrollView = (HorizontalScrollView) view
                .findViewById(R.id.horizontalScrollViewHome);
        border_hScrollView = (HorizontalScrollView) view
                .findViewById(R.id.horizontalScrollViewBorder);
        sticker_hScrollView = (HorizontalScrollView) view
                .findViewById(R.id.horizontalScrollViewSticker);

        btnBorder = (ImageButton) view.findViewById(R.id.imageButtonBorder);
        btnBorder.setOnClickListener(this);

        btnSticker = (ImageButton) view.findViewById(R.id.imageButtonSticker);
        btnSticker.setOnClickListener(this);

        btnAccept = (ImageButton) view.findViewById(R.id.btn_Accept);
        btnAccept.setOnClickListener(this);

        btnMust1 = (ImageButton) view.findViewById(R.id.imageButton1);
        btnMust1.setOnClickListener(this);

        btnMust2 = (ImageButton) view.findViewById(R.id.imageButton2);
        btnMust2.setOnClickListener(this);

        btnDraw = (ImageButton) view.findViewById(R.id.imageButtonDraw);
        btnDraw.setOnClickListener(this);

        btnBorderHome = (ImageButton) view
                .findViewById(R.id.imageButtonBorderHome);
        btnBorderHome.setOnClickListener(this);

        btnStickerHome = (ImageButton) view
                .findViewById(R.id.imageButtonStickerHome);
        btnStickerHome.setOnClickListener(this);

        // COLOR BUTTONS

        btnDrawColorRed = (ImageButton) view
                .findViewById(R.id.imageButtonDrawColorRed);
        btnDrawColorRed.setOnClickListener(this);
        btnDrawColorOrange = (ImageButton) view
                .findViewById(R.id.imageButtonDrawColorOrange);
        btnDrawColorOrange.setOnClickListener(this);
        btnDrawColorYellow = (ImageButton) view
                .findViewById(R.id.imageButtonDrawColorYellow);
        btnDrawColorYellow.setOnClickListener(this);
        btnDrawColorGreen = (ImageButton) view
                .findViewById(R.id.imageButtonDrawColorGreen);
        btnDrawColorGreen.setOnClickListener(this);
        btnDrawColorBlue = (ImageButton) view
                .findViewById(R.id.imageButtonDrawColorBlue);
        btnDrawColorBlue.setOnClickListener(this);
        btnDrawColorIndigo = (ImageButton) view
                .findViewById(R.id.imageButtonDrawColorIndigo);
        btnDrawColorIndigo.setOnClickListener(this);
        btnDrawColorViolet = (ImageButton) view
                .findViewById(R.id.imageButtonDrawColorViolet);
        btnDrawColorViolet.setOnClickListener(this);

        btnDrawColorPink = (ImageButton) view
                .findViewById(R.id.imageButtonDrawColorPink);
        btnDrawColorPink.setOnClickListener(this);

        btnDrawColorPurple = (ImageButton) view
                .findViewById(R.id.imageButtonDrawColorPurple);
        btnDrawColorPurple.setOnClickListener(this);

        btnDrawColorBlack = (ImageButton) view
                .findViewById(R.id.imageButtonDrawColorBlack);
        btnDrawColorBlack.setOnClickListener(this);

        btnDrawColorWhite = (ImageButton) view
                .findViewById(R.id.imageButtonDrawColorWhite);
        btnDrawColorWhite.setOnClickListener(this);

        btnDrawColorBrown = (ImageButton) view
                .findViewById(R.id.imageButtonDrawColorBrown);
        btnDrawColorBrown.setOnClickListener(this);

        // Bundle extras = getIntent().getExtras();
        // Uri fileUri = extras.getParcelable("URI");
        // //m_ImageView = (ImageView) findViewById(R.id.imageViewEdit);
        // previewCapturedImage(fileUri);
        return view;

    }

    /*
     * Display image from a path to ImageView
     */
    private void previewCapturedImage(Uri fileUri) {
        try {
            // bimatp factory
            BitmapFactory.Options options = new BitmapFactory.Options();

            // downsizing image as it throws OutOfMemory Exception for larger
            // images
            options.inSampleSize = 2;

            Bitmap bitmap = BitmapFactory
                    .decodeFile(fileUri.getPath(), options);

            Matrix matrix = new Matrix();
            matrix.postRotate(90);
            bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
                    bitmap.getHeight(), matrix, true);

            m_ImageView.setImageBitmap(bitmap);
        } catch (NullPointerException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        switch (v.getId()) {

        case R.id.imageButtonBorder:
            // CustomImageView m_View = new CustomImageView(getActivity(),
            // R.drawable.p_logo);
            // m_Layout.addView(m_View);
            l_Layout.removeAllViews();
            l_Layout.addView(border_hScrollView);

            break;

        case R.id.imageButtonSticker:

            l_Layout.removeAllViews();
            l_Layout.addView(sticker_hScrollView);

            break;

        case R.id.btn_Accept:
            finalizeBitmap(m_Layout);
            Log.e("IMAGE SAVED", "IMAGE SAVED");
            break;

        case R.id.imageButton1:

            CustomImageView m_View = new CustomImageView(getActivity(),
                    R.drawable.must1);
            m_Layout.addView(m_View);

            break;

        case R.id.imageButton2:

            CustomImageView m_View1 = new CustomImageView(getActivity(),
                    R.drawable.must2);
            m_Layout.addView(m_View1);

            break;

        case R.id.imageButtonBorderHome:
            l_Layout.removeAllViews();
            l_Layout.addView(home_hScrollView);

            break;

        case R.id.imageButtonStickerHome:
            l_Layout.removeAllViews();
            l_Layout.addView(home_hScrollView);
            break;

        case R.id.imageButtonDraw:
            // CustomPaintView p_View = new CustomPaintView(getActivity());
            m_Layout.addView(p_View);
            l_Layout.removeAllViews();
            l_Layout.addView(d_Layout);

        case R.id.imageButtonDrawColorRed:
            p_View.setColor("#FF0000");

            break;
        case R.id.imageButtonDrawColorOrange:
            p_View.setColor("#FF3300");
            break;
        case R.id.imageButtonDrawColorYellow:
            p_View.setColor("#FFFF00");
            break;
        case R.id.imageButtonDrawColorGreen:
            p_View.setColor("#009900");
            break;
        case R.id.imageButtonDrawColorBlue:
            p_View.setColor("#0000FF");
            break;
        case R.id.imageButtonDrawColorIndigo:
            p_View.setColor("#9966FF");
            break;
        case R.id.imageButtonDrawColorViolet:
            p_View.setColor("#660066");
            break;
        case R.id.imageButtonDrawColorPink:
            p_View.setColor("#FF0066");
            break;
        case R.id.imageButtonDrawColorPurple:
            p_View.setColor("#333399");
            break;
        case R.id.imageButtonDrawColorWhite:
            p_View.setColor("#FFFFFF");
            break;
        case R.id.imageButtonDrawColorBlack:
            p_View.setColor("#000000");
            break;
        case R.id.imageButtonDrawColorBrown:
            p_View.setColor("#663300");
            break;

        }

    }

    public void finalizeBitmap(View view) {
        view.setDrawingCacheEnabled(true);
        view.buildDrawingCache(true);
        Bitmap bitmap = view.getDrawingCache();
        saveToInternalStorage(bitmap);

    }

    private void saveToInternalStorage(Bitmap bitmapImage) {
        ContextWrapper cw = new ContextWrapper(getActivity());
        File root = new File(Environment.getExternalStorageDirectory()
                + File.separator + "Pictures" + File.separator + "P"
                + File.separator);

        if (!root.exists()) {
            root.mkdirs();
            Log.e("ROOT", "DIRECTORY DOES NOT EXIST");
        } else {
            Log.e("ROOT", "DIRECTORY EXISTS");
            File sdImageMainDirectory = new File(root, "p_"
                    + (System.currentTimeMillis() / 1000L) + ".png");

            FileOutputStream fos = null;
            try {
                fos = new FileOutputStream(sdImageMainDirectory);

                bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fos);
                fos.close();
            } catch (Exception e) {
                e.printStackTrace();
            }

            Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
            intent.setData(Uri.fromFile(sdImageMainDirectory));
            getActivity().sendBroadcast(intent);
            Log.e("DIRECTORY", "" + sdImageMainDirectory.getAbsolutePath());
            getActivity().getSupportFragmentManager().beginTransaction()
                    .remove(this).commit();

            // change activity to something to share the picture

        }

    }

}

Upvotes: 1

Views: 7418

Answers (4)

user22553717
user22553717

Reputation: 1

**final solution **

open your logcat panel for your device to see where the error comes from

for me it was MainThread. it took my day to figured out.

Upvotes: 0

Coova
Coova

Reputation: 1858

Here is the code that was causing an issue.

public class InitializeApplication extends Application {

    static final String TAG = "MyApp";

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

        ParseObject.registerSubclass(Receipt.class);
        ParseObject.registerSubclass(PUpload.class);  ///<<< ISSUE

        Parse.initialize(this, "XXXXXXXXXXXXXXXXXXXXXXXXXX",
                "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
    }
}

After commenting out that line of code there are no more errors being thrown.

FULL FIX

The error was due to an incomplete constructor within my ParseObject PUpload class. I corrected the constructor and now all is well.

Upvotes: 0

nobalG
nobalG

Reputation: 4620

if ((currentUser != null)) {


            showPrimaryActivity();
            finish();         //remove this
        }

Remove the finish() from your code from the onCreate(),it is making your app to close down.....

Upvotes: 2

Mina Fawzy
Mina Fawzy

Reputation: 21452

may be that reason change every intent have this to MainActivity.this and add finish(); to the method showPrimaryActivity() make sure finish dont close app when it just open

 private void showPrimaryActivity() {
        Intent intent = new Intent(MainActivity.this, NavigationActivity.class);
        startActivity(intent);
      finish();
         }    

    Intent intent1 = new Intent(MainActivity.this, SignUpActivity.class);
            startActivity(intent1);

Upvotes: 0

Related Questions