运行机器人电气测试时,在AsyncTask中出现ProgressDialog.show()的StackOverFlow错



注意:已访问此链接,但没有帮助。

运行机器人电气Junit测试时,我得到由

引起的StackOverFlow错误

ProgressDialog.show ()

AsyncTask内部的调用。

我有以下活动:

public abstract class TransactionFragmentActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.transction_layout);             
SetUpService setup = new SetUpService();
setup.execute();
}
private class SetUpService extends AsyncTask<String, Void, Boolean> {
private ProgressDialog dialog = new ProgressDialog(TransactionFragmentActivity.this);
/** progress dialog to show user that the backup is processing. */
/** application context. */
@Override
protected void onPreExecute() {
SetUpService.this.dialog.setMessage("Please wait");
SetUpService.this.dialog.setCancelable(false);
SetUpService.this.dialog.show();
}
@Override
protected Boolean doInBackground(final String... args) {
// Setting data 
Log.d(TAG,"doInBackground...");
fetchData(); //some method doing work
return true;
}

@Override
protected void onPostExecute(final Boolean success) {
if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
}
}
}

后面是堆栈跟踪:

java.lang.StackOverflowError. lang . class。getConstructor0(未知来源). lang . class。getDeclaredConstructor(未知来源)org.robolectric.bytecode.RobolectricInternals.newInstance (RobolectricInternals.java: 39)org.robolectric.bytecode.RobolectricInternals.directlyOn (RobolectricInternals.java: 54)org.robolectric.Robolectric.directlyOn (Robolectric.java: 366)org.robolectric.shadows.ShadowView.directly (ShadowView.java: 439)org.robolectric.shadows.ShadowView.invalidate (ShadowView.java: 168)android.view.View.invalidate (View.java)android.widget.TextView.setPadding (TextView.java: 2122)android.view.View.recomputePadding (View.java: 10914)android.view.View.resolvePadding (View.java: 11584)android.view.View.resolveLayoutDirection (View.java: 11524)android.view.View.onAttachedToWindow (View.java: 11440)android.widget.TextView.onAttachedToWindow (TextView.java: 4448)android.view.View.dispatchAttachedToWindow (View.java: 11755)android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java: 2424)android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java: 2424)android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java: 2424)android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java: 2424)android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java: 2424)android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java: 2424)android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java: 2424)android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java: 2424)android.view.ViewRootImpl.performTraversals (ViewRootImpl.java: 1201)android.view.ViewRootImpl.doTraversal (ViewRootImpl.java: 1000)android.view.ViewRootImpl TraversalRunnable.run美元(ViewRootImpl.java: 4214)android.view.Choreographer CallbackRecord.run美元(Choreographer.java: 725)android.view.Choreographer.doCallbacks (Choreographer.java: 555)android.view.Choreographer.doFrame (Choreographer.java: 525)android.view.Choreographer FrameHandler.handleMessage美元(Choreographer.java: 657)org.robolectric.shadows.ShadowHandler.routeMessage (ShadowHandler.java: 125)org.robolectric.shadows.ShadowHandler.access 100美元(ShadowHandler.java: 25)在org.robolectric.shadows.ShadowHandler 1.美元运行(ShadowHandler.java: 110)在org.robolectric.util.Scheduler.postDelayed (Scheduler.java: 37)org.robolectric.shadows.ShadowLooper.post (ShadowLooper.java: 198)org.robolectric.shadows.ShadowHandler.postDelayed (ShadowHandler.java: 56)org.robolectric.shadows.ShadowHandler.sendMessageDelayed (ShadowHandler.java: 105)org.robolectric.shadows.ShadowHandler.sendMessageAtTime (ShadowHandler.java: 160)android.os.Handler.sendMessageAtTime (Handler.java)android.view.Choreographer.scheduleFrameLocked (Choreographer.java: 479)android.view.Choreographer.postCallbackDelayedInternal (Choreographer.java: 309)android.view.Choreographer.postCallbackDelayed (Choreographer.java: 292)android.view.Choreographer.postCallback (Choreographer.java: 266)android.view.ViewRootImpl.scheduleTraversals (ViewRootImpl.java: 974)android.view.ViewRootImpl.setLayoutParams (ViewRootImpl.java: 792)android.view.WindowManagerImpl.updateViewLayout (WindowManagerImpl.java: 343)android.app.Activity.onWindowAttributesChanged (Activity.java: 2267)android.view.Window.setDefaultWindowFormat (Window.java: 1226)com.android.internal.policy.impl.PhoneWindow.access 1300美元(PhoneWindow.java: 105)com.android.internal.policy.impl.PhoneWindow DecorView.drawableChanged美元(PhoneWindow.java: 2407)com.android.internal.policy.impl.PhoneWindow DecorView.fitSystemWindows美元(PhoneWindow.java: 2345)android.view.ViewRootImpl.performTraversals (ViewRootImpl.java: 1203)android.view.ViewRootImpl.doTraversal (ViewRootImpl.java: 1000)android.view.ViewRootImpl TraversalRunnable.run美元(ViewRootImpl.java: 4214)android.view.Choreographer CallbackRecord.run美元(Choreographer.java: 725)android.view.Choreographer.doCallbacks (Choreographer.java: 555)android.view.Choreographer.doFrame (Choreographer.java: 525)android.view.Choreographer FrameHandler.handleMessage美元(Choreographer.java: 657)org.robolectric.shadows.ShadowHandler.routeMessage (ShadowHandler.java: 125)org.robolectric.shadows.ShadowHandler.access 100美元(ShadowHandler.java: 25)在org.robolectric.shadows.ShadowHandler 1.美元运行(ShadowHandler.java: 110)在org.robolectric.util.Scheduler.postDelayed (Scheduler.java: 37)org.robolectric.shadows.ShadowLooper.post (ShadowLooper.java: 198)org.robolectric.shadows.ShadowHandler.postDelayed (ShadowHandler.java: 56)org.robolectric.shadows.ShadowHandler.sendMessageDelayed (ShadowHandler.java: 105)org.robolectric.shadows.ShadowHandler.sendMessageAtTime (ShadowHandler.java: 160)android.os.Handler.sendMessageAtTime (Handler.java)android.view.Choreographer.scheduleFrameLocked (Choreographer.java: 479)android.view.Choreographer.postCallbackDelayedInternal (Choreographer.java: 309)android.view.Choreographer.postCallbackDelayed (Choreographer.java: 292)android.view.Choreographer.postCallback (Choreographer.java: 266)android.view.ViewRootImpl.scheduleTraversals (ViewRootImpl.java: 974)android.view.ViewRootImpl.setLayoutParams (ViewRootImpl.java: 792)android.view.WindowManagerImpl.updateViewLayout (WindowManagerImpl.java: 343)android.app.Activity.onWindowAttributesChanged (Activity.java: 2267)android.view.Window.setDefaultWindowFormat (Window.java: 1226)com.android.internal.policy.impl.PhoneWindow.access 1300美元(PhoneWindow.java: 105)com.android.internal.policy.impl.PhoneWindow DecorView.drawableChanged美元(PhoneWindow.java: 2407)com.android.internal.policy.impl.PhoneWindow DecorView.fitSystemWindows美元(PhoneWindow.java: 2345)android.view.ViewRootImpl.performTraversals (ViewRootImpl.java: 1203)android.view.ViewRootImpl.doTraversal (ViewRootImpl.java: 1000)android.view.ViewRootImpl TraversalRunnable.run美元(ViewRootImpl.java: 4214)android.view.Choreographer CallbackRecord.run美元(Choreographer.java: 725)android.view.Choreographer.doCallbacks (Choreographer.java: 555)android.view.Choreographer.doFrame (Choreographer.java: 525)android.view.Choreographer FrameHandler.handleMessage美元(Choreographer.java: 657)org.robolectric.shadows.ShadowHandler.routeMessage (ShadowHandler.java: 125)org.robolectric.shadows.ShadowHandler.access 100美元(ShadowHandler.java: 25)在org.robolectric.shadows.ShadowHandler 1.美元运行(ShadowHandler.java: 110)在org.robolectric.util.Scheduler.postDelayed (Scheduler.java: 37)org.robolectric.shadows.ShadowLooper.post (ShadowLooper.java: 198)org.robolectric.shadows.ShadowHandler.postDelayed (ShadowHandler.java: 56)org.robolectric.shadows.ShadowHandler.sendMessageDelayed (ShadowHandler.java: 105)org.robolectric.shadows.ShadowHandler.sendMessageAtTime (ShadowHandler.java: 160)android.os.Handler.sendMessageAtTime (Handler.java)android.view.Choreographer.scheduleFrameLocked (Choreographer.java: 479)在 ............

tryfinal ProgressDialog dialog = new ProgressDialog(getApplicationContext);

private ProgressDialog dialog = new ProgressDialog(getActivity());
protected void onPreExecute() { 
dialog.setMessage("Please wait");
dialog.setCancelable(false);
dialog.show();
} 

Activity act = (TransactionFragmentActivity) this;
private ProgressDialog dialog = new ProgressDialog(act);
protected void onPreExecute() { 
dialog.setMessage("Please wait");
dialog.setCancelable(false);
dialog.show();
}

我想会有用的。看看吧,告诉我。

最新更新