2016-08-31 7 views
3

私のアプリでACRA 4.9.0を使用しています。私はちょうど私のアプリがクラッシュしたときにユーザーにダイアログボックスを表示したい。アプリケーションがクラッシュしたときにカスタムダイアログボックスを設定するにはどうすればよいですか?

これは私の現在のコードです:

public class App extends MultiDexApplication { 

@Override 
public void onCreate() { 
    ConfigurationBuilder config = new ConfigurationBuilder(this); 
    config.setMailTo("[email protected]"); 
    config.setResDialogIcon(android.R.drawable.ic_dialog_info); 
    config.setResDialogText(R.string.crash_dialog_text); 
    config.setResDialogTitle(R.string.crash_dialog_title); 
    config.setResDialogCommentPrompt(R.string.crash_dialog_comment_prompt); 
    config.setResDialogOkToast(R.string.crash_dialog_ok_toast); 
    config.setMode(ReportingInteractionMode.DIALOG); 

    try{ 
     config.setMode(ReportingInteractionMode.DIALOG); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     return; 
    } 

    ACRA.init(this, config); 
    super.onCreate(); 
    Instance = this; 
    applicationHandler = new Handler(getInstance().getMainLooper()); 
} 
+0

更新答えを確認してください。 –

+0

acra gradle依存ラインを追加してください。 – F43nd1r

答えて

1

完全に動作するデモ

Applicationクラス

@ReportsCrashes(formUri = "http://yourserver.com/yourscript", 
     mode = ReportingInteractionMode.DIALOG, 
     resToastText = R.string.app_name, 
     resDialogText = R.string.app_name, 
     resDialogIcon = android.R.drawable.ic_dialog_info, 
     resDialogTitle = R.string.app_name, 
     resDialogCommentPrompt = R.string.app_name, 
     resDialogEmailPrompt = R.string.app_name, 
     resDialogOkToast = R.string.app_name, 
     resDialogTheme = R.style.AppTheme_Dialog) 

public class App extends Application { 

    private Context context; 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     context = getApplicationContext(); 
     ACRA.init(this); 
    } 
} 

MainActivity

public class MainActivity extends AppCompatActivity { 
    Context context; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     context = this; 

     EditText number = (EditText) findViewById(R.id.foodName); 
     number.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       int a = 0/0; 
      } 
     }); 
    } 
} 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/base" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_margin="10dp" 
    android:background="@color/white" 
    android:orientation="horizontal" 
    android:weightSum="10"> 


    <EditText 
     android:id="@+id/foodName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="64dp" 
     android:layout_marginRight="64dp" 
     android:hint="Food name" 
     android:inputType="textCapWords" 
     android:textColor="@color/colorPrimaryDark" 
     android:textColorHint="@color/colorPrimaryDark" 
     android:textSize="32sp" 
     android:layout_centerVertical="true" 
     android:layout_centerHorizontal="true" /> 

</RelativeLayout> 

ダイアログ:

enter image description here

+0

私はこれを試しましたが、エラーメッセージが表示されます(属性値は一定でなければなりません) –

+0

フルクラスを投稿できます –

+0

これは私のフルクラスです。 –

関連する問題