2013-11-04 45 views
0

在一些测试中,我设法冻结模拟器到我必须创建一个新的模拟器的点。在下面的代码中我不小心拼错了一个类名和Class.forNamethrewRuntimeException()ClassNotFoundExceptionActivityManager然后执行Start proc org.acra.CrashReportDialog。这是循环运行并冻结模拟器可能是因为onCreate()永远不会完成,不确定。Acra重新启动一遍又一遍,并冻结模拟器

当模拟器开始我有一个启动我的应用程序的android.permission.RECEIVE_BOOT_COMPLETED

任何方式来防止这种情况旁边代码ApplicationonCreate()或编写更好的代码。

public class Application extends android.app.Application { 
      @Override 
      public void onCreate() { 
       super.onCreate(); 
       ACRA.init(this); 
       ACRA.getErrorReporter().setReportSender(new AcraReportSender(this)); 
       // gets id, create it if it dose not exist 
       ACRA.getErrorReporter().putCustomData("APPLICATION_ID_UUID", SettingsManager.applicationId()); 
       Thread.currentThread().setPriority(Thread.MAX_PRIORITY); 
       ArrayList<String> contactManager = new ArrayList<String>(); 
       TypedArray contactManagerClasses = getResources().obtainTypedArray(R.array.contact_managers); 
       for (int index = 0; index < contactManagerClasses.length(); index++) 
        contactManager.add(contactManagerClasses.getString(index)); 
       contactManagerClasses.recycle(); 
       TypedArray managerClasses = getResources().obtainTypedArray(R.array.managers); 
       for (int index = 0; index < managerClasses.length(); index++) 
        if (isContactsSupported() || !contactManager.contains(managerClasses.getString(index))) 
         try { 
          Class.forName(managerClasses.getString(index)); 
          Log.d("Application","LOADING MANAGER " + managerClasses.getString(index));     
         } catch (ClassNotFoundException e) { 
          throw new RuntimeException(e); 
         } 
       managerClasses.recycle(); 

       TypedArray tableClasses = getResources().obtainTypedArray(R.array.tables); 
       for (int index = 0; index < tableClasses.length(); index++) 
        try { 
         Class.forName(tableClasses.getString(index)); 
         Log.d("Application","LOADING TABLE " + managerClasses.getString(index));      
        } catch (ClassNotFoundException e) { 
         throw new RuntimeException(e); 
        } 
       tableClasses.recycle(); 
       onServiceStarted(); 
      } 
...... 
.... 

回答

1

简答题没有。

即使你删除ACRA,你会发现,你的活动正在重新启动一遍又一遍。这是因为Android尝试重新启动崩溃的应用程序。在你的情况下,它是在应用程序的构建过程中崩溃。

最好的建议,它使你的启动无误。

+0

是的,当然,我挂断了阿克拉,但你可能是对的 – Erik

相关问题