Skip to content

This application stilll has some bugs #79

@AssassinRain

Description

@AssassinRain

Hello. I noticed some crashes in logs. The corresponding commit version of code is fd1e332, and application version is 0.04-01.

1.com.csipsimple.ui.prefs.cupcake.MainPrefs

The exception trace is:
FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.easter.test/com.easter.test.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.csipsimple/com.csipsimple.ui.prefs.cupcake.MainPrefs}; have you declared this activity in your AndroidManifest.xml? at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2957) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6944) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.csipsimple/com.csipsimple.ui.prefs.cupcake.MainPrefs}; have you declared this activity in your AndroidManifest.xml? at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1950) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1622) at android.app.Activity.startActivityForResult(Activity.java:4564) at android.app.Activity.startActivityForResult(Activity.java:4522) at android.app.Activity.startActivity(Activity.java:4883) at android.app.Activity.startActivity(Activity.java:4851) at com.easter.test.MainActivity.onCreate(MainActivity.java:25) at android.app.Activity.performCreate(Activity.java:7183) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910)

The command to trigger it is: adb shell am start -n com.csipsimple/com.csipsimple.ui.prefs.cupcake.MainPrefs -a com.csipsimple.ui.action.PREFS_GLOBAL -c android.intent.category.DEFAULT

2.com.csipsimple.ui.prefs.cupcake.MainPrefs

The exception trace is:
FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.easter.test/com.easter.test.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.csipsimple/com.csipsimple.ui.prefs.cupcake.MainPrefs}; have you declared this activity in your AndroidManifest.xml? at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2957) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6944) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.csipsimple/com.csipsimple.ui.prefs.cupcake.MainPrefs}; have you declared this activity in your AndroidManifest.xml? at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1950) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1622) at android.app.Activity.startActivityForResult(Activity.java:4564) at android.app.Activity.startActivityForResult(Activity.java:4522) at android.app.Activity.startActivity(Activity.java:4883) at android.app.Activity.startActivity(Activity.java:4851) at com.easter.test.MainActivity.onCreate(MainActivity.java:23) at android.app.Activity.performCreate(Activity.java:7183) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910)

The command to trigger it is: adb shell am start -n com.csipsimple/com.csipsimple.ui.prefs.cupcake.MainPrefs

3.com.csipsimple.ui.outgoingcall.OutgoingCallChooser

The exception trace is:
FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.csipsimple/com.csipsimple.ui.outgoingcall.OutgoingCallChooser}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2957) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6944) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference at android.telephony.PhoneNumberUtils.getNumberFromIntent(PhoneNumberUtils.java:267) at com.csipsimple.ui.outgoingcall.OutgoingCallChooser.getPhoneNumber(OutgoingCallChooser.java:85) at com.csipsimple.ui.outgoingcall.OutgoingCallChooser.onCreate(OutgoingCallChooser.java:56) at android.app.Activity.performCreate(Activity.java:7183) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910)

The command to trigger it is: adb shell am start -n com.csipsimple/com.csipsimple.ui.outgoingcall.OutgoingCallChooser -d aah

4.com.csipsimple.ui.incall.InCallActivity

The exception trace is:
FATAL EXCEPTION: main java.lang.RuntimeException: Unable to resume activity {com.csipsimple/com.csipsimple.ui.incall.InCallActivity}: java.lang.NullPointerException: Attempt to invoke a virtual method on a null object reference at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3790) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3830) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3038) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6944) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) Caused by: java.lang.NullPointerException: Attempt to invoke a virtual method on a null object reference at com.csipsimple.ui.incall.InCallActivity$UpdateUIFromCallRunnable.run(InCallActivity.java:497) at android.app.Activity.runOnUiThread(Activity.java:6281) at com.csipsimple.ui.incall.InCallActivity.onResume(InCallActivity.java:255) at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1361) at android.app.Activity.performResume(Activity.java:7361) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3765)

The command to trigger it is: adb shell am start -n com.csipsimple/com.csipsimple.ui.incall.InCallActivity

Because all these activities are exported ones, i.e., be exposed to outside, they may receive unfriendly commands and then lead to app crash. After investigation, we found that the missing of null checkers causes those crashes.
Please help to confirm whether they are true bugs. We believe that fixing these bugs will further improve the robustness of this app.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions