0

My app, built using Android Studio, was working when all of a sudden it started giving me the following errors:

03-07 02:07:04.665 14549-14549/uomini.com.theleaguedemo E/AndroidRuntime: FATAL EXCEPTION: main
                                                                          Process: uomini.com.theleaguedemo, PID: 14549
                                                                          java.lang.RuntimeException: Unable to start activity ComponentInfo{uomini.com.theleaguedemo/uomini.com.theleaguedemo.SetupRoutine}: android.view.InflateException: Binary XML file line #63: Binary XML file line #63: Error inflating class uomini.com.theleaguedemo.PerformButton
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253)
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
                                                                              at android.app.ActivityThread.access$1100(ActivityThread.java:221)
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
                                                                              at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                              at android.os.Looper.loop(Looper.java:158)
                                                                              at android.app.ActivityThread.main(ActivityThread.java:7225)
                                                                              at java.lang.reflect.Method.invoke(Native Method)
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
                                                                           Caused by: android.view.InflateException: Binary XML file line #63: Binary XML file line #63: Error inflating class uomini.com.theleaguedemo.PerformButton
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:551)
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:429)
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:380)
                                                                              at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:474)
                                                                              at android.app.Activity.setContentView(Activity.java:2387)
                                                                              at uomini.com.theleaguedemo.SetupRoutine.onCreate(SetupRoutine.java:75)
                                                                              at android.app.Activity.performCreate(Activity.java:6876)
                                                                              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206)
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
                                                                              at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
                                                                              at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                              at android.os.Looper.loop(Looper.java:158) 
                                                                              at android.app.ActivityThread.main(ActivityThread.java:7225) 
                                                                              at java.lang.reflect.Method.invoke(Native Method) 
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
                                                                           Caused by: android.view.InflateException: Binary XML file line #63: Error inflating class uomini.com.theleaguedemo.PerformButton
                                                                              at android.view.LayoutInflater.createView(LayoutInflater.java:657)
                                                                              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776)
                                                                              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:847)
                                                                              at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:855)
                                                                              at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:855)
                                                                              at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:527)
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:429) 
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:380) 
                                                                              at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:474) 
                                                                              at android.app.Activity.setContentView(Activity.java:2387) 
                                                                              at uomini.com.theleaguedemo.SetupRoutine.onCreate(SetupRoutine.java:75) 
                                                                              at android.app.Activity.performCreate(Activity.java:6876) 
                                                                              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135) 
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206) 
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
                                                                              at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
                                                                              at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                              at android.os.Looper.loop(Looper.java:158) 
                                                                              at android.app.ActivityThread.main(ActivityThread.java:7225) 
                                                                              at java.lang.reflect.Method.invoke(Native Method) 
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
                                                                           Caused by: java.lang.reflect.InvocationTargetException
                                                                              at java.lang.reflect.Constructor.newInstance(Native Method)
                                                                              at android.view.LayoutInflater.createView(LayoutInflater.java:631)
                                                                              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776) 
                                                                              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716) 
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:847) 
                                                                              at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810) 
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:855) 
                                                                              at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810) 
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:855) 
                                                                              at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810) 
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:527) 
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:429) 
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:380) 
                                                                              at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:474) 
                                                                              at android.app.Activity.setContentView(Activity.java:2387) 
                                                                              at uomini.com.theleaguedemo.SetupRoutine.onCreate(SetupRoutine.java:75) 
                                                                              at android.app.Activity.performCreate(Activity.java:6876) 
                                                                              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135) 
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206) 
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
                                                                              at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
                                                                              at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                              at android.os.Looper.loop(Looper.java:158) 
                                                                              at android.app.ActivityThread.main(ActivityThread.java:7225) 
                                                                              at java.lang.reflect.Method.invoke(Native Method) 
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
                                                                           Caused by: java.lang.NumberFormatException: Invalid int: "2 Time(s) a day%2 Time(s) a Day%1 Time(s) a Day%1 Time(s) a Day%2 Time(s) a day%"
                                                                              at java.lang.Integer.invalidInt(Integer.java:138)
                                                                              at java.lang.Integer.parse(Integer.java:410)
                                                                              at java.lang.Integer.parseInt(Integer.java:367)
                                                                              at java.lang.Integer.parseInt(Integer.java:334)
                                                                              at uomini.com.theleaguedemo.Utilities.getRoutineData(Utilities.java:28)
                                                                              at uomini.com.theleaguedemo.PerformButton.<init>(PerformButton.java:43)
                                                                              at java.lang.reflect.Constructor.newInstance(Native Method) 
                                                                              at android.view.LayoutInflater.createView(LayoutInflater.java:631) 
                                                                              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776) 
                                                                              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716) 
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:847) 
                                                                              at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810) 
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:855) 
                                                                              at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810) 
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:855) 
                                                                              at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810) 
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:527) 
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:429) 
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:380) 
                                                                              at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:474) 
                                                                              at android.app.Activity.setContentView(Activity.java:2387) 
                                                                              at uomini.com.theleaguedemo.SetupRoutine.onCreate(SetupRoutine.java:75) 
                                                                              at android.app.Activity.performCreate(Activity.java:6876) 
                                                                              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135) 
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206) 
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
                                                                              at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
                                                                              at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                              at android.os.Looper.loop(Looper.java:158) 
                                                                              at android.app.ActivityThread.main(ActivityThread.java:7225) 
                                                                              at java.lang.reflect.Method.invoke(Native Method) 
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 

First it's complaining about line #63 in my layout XML:

android:layout_below="@+id/img_layout"
        android:layout_centerHorizontal="true">

        <TextView
            android:id="@+id/horiz1"
            android:layout_width="fill_parent"
            android:layout_height="1dip"
            android:background="#a0a0a0" />

        <LinearLayout
            android:id="@+id/button_layout"
            android:orientation="horizontal"
            android:layout_below="@id/horiz1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true">

            <uomini.com.theleaguedemo.PerformButton (This is at line #63)
                android:id="@+id/perform_prompt"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/perform"/>
            <uomini.com.theleaguedemo.HoldButton
                android:id="@+id/hold_prompt"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/hold"/>
            <uomini.com.theleaguedemo.RepeatButton

PerformButton is a custom button I defined:

public class PerformButton extends AppCompatButton {

    String code, routine_position;

    Context mContext;

    SharedPreferences settings;

    public PerformButton(Context context, AttributeSet attrs) {
        super(context, attrs);

        this.mContext = context;

        routine_position = Utilities.getPosition();

        code = Utilities.getCode();

        // TODO Auto-generated constructor stub

        Button perform_prompt = (Button) findViewById(R.id.perform_prompt);
        settings = mContext.getSharedPreferences(code, Context.MODE_PRIVATE);

        String dataVal = getRoutineData(mContext, settings.getString(Constants.PERFORM, "0"), routine_position);
   //     String dataVal = Utilities.getRoutineData(mContext, settings.getString(Constants.PERFORM, "0"), routine_position);
        if (dataVal.equals("null")) {
            perform_prompt.setVisibility(View.GONE);
        } else {
            perform_prompt.setText(perform_prompt.getText() + "\n" + dataVal);
        }
        perform_prompt.setTextColor(Color.BLUE);
        perform_prompt.setTextSize(9.0f);
        perform_prompt.setOnClickListener(new View.OnClickListener() {

            @SuppressLint("ClickableViewAccessibility")
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                settings = mContext.getSharedPreferences(code, Context.MODE_PRIVATE);

                Intent intent = new Intent(mContext, PerformDialog.class);
                intent.putExtra(Constants.CODE, code);
                intent.putExtra(Constants.PERFORM, settings.getString(Constants.PERFORM, "1"));
                intent.putExtra(Constants.ROUTINE_POSITION, routine_position);
                mContext.startActivity(intent);
            }
        });
    }

    public String getRoutineData(Context context, String position, String workout_tag) {
        SharedPreferences settings = context.getSharedPreferences(Utilities.getCode(), Context.MODE_PRIVATE);
        String routine_data = settings.getString(workout_tag, "0");

        StringTokenizer st = new StringTokenizer(routine_data, "%");
        int arraySz = st.countTokens();

        for (int i = 0; i < arraySz; i++) {
            String tmp = st.nextToken();
            if (i == Integer.parseInt(position)) {
                if (tmp.indexOf(" ") != -1) return tmp.substring(0, tmp.indexOf(" "));
                return tmp;
            }
        }
        return null;
    }

}

Finally, it's complaining about a NumberFormatException:

Caused by: java.lang.NumberFormatException: Invalid int: "2 Time(s) a day%2 Time(s) a Day%1 Time(s) a Day%1 Time(s) a Day%2 Time(s) a day%"

How can I disable this error so I can load my app and debug it?

FractalBob
  • 3,225
  • 4
  • 29
  • 40

1 Answers1

0

It turns out that the Exception was due to what a method was returning. What confused me was the fact that the method used to work, but in a difference context.

FractalBob
  • 3,225
  • 4
  • 29
  • 40