r3gis3r / CSipSimple

CSipSimple Mirror (no pull-requests here)
http://www.csipsimple.com
GNU Lesser General Public License v3.0
302 stars 227 forks source link

This application stilll has some bugs #79

Open AssassinRain opened 5 years ago

AssassinRain commented 5 years ago

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.