cuplv / TraceRunner

Tool for generating dynamic traces of android applications.
3 stars 0 forks source link

No Such method exception ('getOutline') while running instrumented Android-Topeka #28

Closed sllam closed 7 years ago

sllam commented 7 years ago

This app: https://github.com/cuplv/callback-verification/tree/tests/tests/realApplications/android-topeka/bug/android-topeka

Compiles and instruments fine.

However, when you run the instrumented app to try to get a trace, gracefully terminating the app doesn't unblock the netcat process: No trace data is received by the process..

Also tried starting the instrumented app without the nc bridge at 5050. App starts without throwing exception (It should crash if you do this)

sllam commented 7 years ago

Mystery solved: App code was not instrumented even though instrumentation ran without problems.

Reason: This is a google sample app, packaged in com.google.samples... Instrumenter treated it as framework code.

Next step: Edmund will change the sample app code's package name.

sllam commented 7 years ago

Reopening this.. back from the dead. Peilun renamed package to edu.colorado.plv.apps.topeka , https://github.com/cuplv/callback-verification/tree/tests/tests/realApplications/android-topeka-cuplv . Instrumentation still not responding.

sllam commented 7 years ago

Rerun this Topeka app. Apparently I made a mistake, must have ran the old version instead. However, the new old is now throwing this error:

02-16 11:12:35.375 9565-9565/edu.colorado.plv.apps.topeka E/AndroidRuntime: FATAL EXCEPTION: main Process: edu.colorado.plv.apps.topeka, PID: 9565 java.lang.RuntimeException: methodName: getOutline objects: [Ljava.lang.Class;@efee81b types: [Ljava.lang.String;@d233db8 at edu.colorado.plv.tracerunner_runtime_instrumentation.FrameworkResolver.getFrameworkOverride(FrameworkResolver.java:425) at edu.colorado.plv.tracerunner_runtime_instrumentation.FrameworkResolver.getFrameworkOverrideMemo(FrameworkResolver.java:349) at edu.colorado.plv.tracerunner_runtime_instrumentation.TraceRunnerRuntimeInstrumentation.logCallbackEntry(TraceRunnerRuntimeInstrumentation.java:158) at edu.colorado.plv.apps.topeka.widget.outlineprovider.RoundOutlineProvider.getOutline(RoundOutlineProvider.java) at android.view.View.rebuildOutline(View.java:12135) at android.view.View.invalidateDrawable(View.java:16790) at android.widget.ImageView.invalidateDrawable(ImageView.java:248) at edu.colorado.plv.apps.topeka.widget.fab.FloatingActionButton.invalidateDrawable(FloatingActionButton.java) at edu.colorado.plv.apps.topeka.widget.fab.DoneFab.invalidateDrawable(DoneFab.java) at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:385) at android.graphics.drawable.RippleDrawable.invalidateSelf(RippleDrawable.java:705) at android.graphics.drawable.RippleDrawable.cancelExitingRipples(RippleDrawable.java:233) at android.graphics.drawable.RippleDrawable.jumpToCurrentState(RippleDrawable.java:217) at android.view.View.jumpDrawablesToCurrentState(View.java:17162) at android.widget.ImageView.jumpDrawablesToCurrentState(ImageView.java:223) at edu.colorado.plv.apps.topeka.widget.fab.FloatingActionButton.jumpDrawablesToCurrentState(FloatingActionButton.java) at edu.colorado.plv.apps.topeka.widget.fab.DoneFab.jumpDrawablesToCurrentState(DoneFab.java) at android.view.View.onAttachedToWindow(View.java:14043) at android.widget.ImageView.onAttachedToWindow(ImageView.java:1475) at edu.colorado.plv.apps.topeka.widget.fab.FloatingActionButton.onAttachedToWindow(FloatingActionButton.java) at edu.colorado.plv.apps.topeka.widget.fab.DoneFab.onAttachedToWindow(DoneFab.java) at android.view.View.dispatchAttachedToWindow(View.java:14514) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1364) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) at android.view.Choreographer.doCallbacks(Choreographer.java:670) at android.view.Choreographer.doFrame(Choreographer.java:606) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.NoSuchMethodException: getOutline [class android.view.View, class android.graphics.Outline] at java.lang.Class.getMethod(Class.java:624) at java.lang.Class.getDeclaredMethod(Class.java:586) at edu.colorado.plv.tracerunner_runtime_instrumentation.FrameworkResolver.getFrameworkOverride(FrameworkResolver.java:421) at edu.colorado.plv.tracerunner_runtime_instrumentation.FrameworkResolver.getFrameworkOverrideMemo(FrameworkResolver.java:349)  at edu.colorado.plv.tracerunner_runtime_instrumentation.TraceRunnerRuntimeInstrumentation.logCallbackEntry(TraceRunnerRuntimeInstrumentation.java:158)  at edu.colorado.plv.apps.topeka.widget.outlineprovider.RoundOutlineProvider.getOutline(RoundOutlineProvider.java)  at android.view.View.rebuildOutline(View.java:12135)  at android.view.View.invalidateDrawable(View.java:16790)  at android.widget.ImageView.invalidateDrawable(ImageView.java:248)  at edu.colorado.plv.apps.topeka.widget.fab.FloatingActionButton.invalidateDrawable(FloatingActionButton.java)  at edu.colorado.plv.apps.topeka.widget.fab.DoneFab.invalidateDrawable(DoneFab.java)  at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:385)  at android.graphics.drawable.RippleDrawable.invalidateSelf(RippleDrawable.java:705)  at android.graphics.drawable.RippleDrawable.cancelExitingRipples(RippleDrawable.java:233)  at android.graphics.drawable.RippleDrawable.jumpToCurrentState(RippleDrawable.java:217)  at android.view.View.jumpDrawablesToCurrentState(View.java:17162)  at android.widget.ImageView.jumpDrawablesToCurrentState(ImageView.java:223)  at edu.colorado.plv.apps.topeka.widget.fab.FloatingActionButton.jumpDrawablesToCurrentState(FloatingActionButton.java)  at edu.colorado.plv.apps.topeka.widget.fab.DoneFab.jumpDrawablesToCurrentState(DoneFab.java)  at android.view.View.onAttachedToWindow(View.java:14043)  at android.widget.ImageView.onAttachedToWindow(ImageView.java:1475)  at edu.colorado.plv.apps.topeka.widget.fab.FloatingActionButton.onAttachedToWindow(FloatingActionButton.java)  at edu.colorado.plv.apps.topeka.widget.fab.DoneFab.onAttachedToWindow(DoneFab.java)  at android.view.View.dispatchAttachedToWindow(View.java:14514)  at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)  at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)  at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)  at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)  at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)  at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1364)  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)  at android.view.Choreographer.doCallbacks(Choreographer.java:670)  at android.view.Choreographer.doFrame(Choreographer.java:606)  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)  at android.os.Handler.handleCallback(Handler.java:739)  at android.os.Handler.dispatchMessage(Handler.java:95)  at android.os.Looper.loop(Looper.java:148)  at android.app.ActivityThread.main(ActivityThread.java:5417) 

ftc commented 7 years ago

Fixed with overrideImpMissing