2011-07-04 73 views
0

每次我尝试启动我的应用程序它显示了这个错误:应用程序已意外停止,请重试的Android

The application SMSbackupv1 (process com.SMS.Backup) has stpped unexpectedly. please try again. 

我不知道从哪里被创建的错误。然而,当我调试文件threadGroup.class显示,它显示

Source not found 
the JAR file C:\Program Files (x86)\Android\android-sdk\platforms\android-8\android.jar has no source attachment. 

这里是代码:

import java.util.ArrayList; 
import android.app.Activity; 
import android.database.Cursor; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class SMSbackup extends Activity { 
    private Button backupBTN; 
    public ArrayList<String> exportBuffer = new ArrayList<String>(); 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     try { 
      backupBTN = (Button) this.findViewById(R.id.button1); 

     } catch (Exception e) { 
      this.backupBTN.setOnClickListener(new OnClickListener() { 
       public void onClick(View v) { 
        try { 

         Cursor c = getContentResolver().query(
           Uri.parse("content://sms"), null, null, null, 
           null); 
         getColumnData(c); 

        } catch (Exception e) { 
         e.printStackTrace(); 
        } 
       } 
      }); 

     } 
    } 

    public void getColumnData(Cursor cur) { 
     try { 
      if (cur.moveToFirst()) { 
       String id; 
       String date; 
       String phoneNumber; 
       String body; 

       int idColumn = cur.getColumnIndex("_id"); 
       int dateColumn = cur.getColumnIndex("date"); 
       int numberColumn = cur.getColumnIndex("address"); 
       int bodyColumn = cur.getColumnIndex("body"); 

       do { 

        id = cur.getString(idColumn); 
        date = cur.getString(dateColumn); 
        body = cur.getString(bodyColumn); 
        phoneNumber = cur.getString(numberColumn); 

        exportBuffer.add(id + " ," + date + " ," + body + " ," 
          + phoneNumber); 

       } while (cur.moveToNext()); 
      } 
      WriteToFile(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    private void WriteToFile() { 
     try { 
      CSV export = new CSV(); 
      export.generateCSVFile(exportBuffer); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

创建CSV类:

import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.text.SimpleDateFormat; 
import java.util.ArrayList; 
import java.util.Calendar; 

import android.os.Environment; 
import android.widget.Toast; 

public class CSV extends SMSbackup { 

    public static ArrayList<String> data = new ArrayList<String>(); 
    public static File rootFolder; 
    public static File root; 
    private static String subFolderName; 
    private static String fileName; 
    public boolean mExternalStorageAvailable = false; 
    public boolean mExternalStorageWriteable = false; 

    public CSV() 
    { 
     checkStorage(); 

     if(mExternalStorageAvailable == true && mExternalStorageWriteable == true) 
     { 
      root = new File(Environment.getExternalStorageDirectory() + "/SMSMonitor/", null); 
      subFolderName = GetSubFolder(); 
      fileName = getFileName(); 
     } 
    } 

    public void checkStorage() 
    { 
     CharSequence text; 
     int duration = Toast.LENGTH_SHORT; 
     mExternalStorageAvailable = false; 
     mExternalStorageWriteable = false; 

     String state = Environment.getExternalStorageState(); 

     if (Environment.MEDIA_MOUNTED.equals(state)) 
     { 
      text = "SD card is Read and Write"; 
      mExternalStorageAvailable = mExternalStorageWriteable = true; 

     } 
     else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) 
     { 
      text = "SD Card is Read Only"; 
      mExternalStorageAvailable = true; 
      mExternalStorageWriteable = false; 
     } 
     else 
     { 
      mExternalStorageAvailable = mExternalStorageWriteable = false; 
      text = "Something else is wrong..."; 
     } 
     //Toast toast = Toast.makeText(SmsBackupActivity.defaultInstance, text, duration); 
     //toast.show(); 
    } 

    public void generateCSVFile(ArrayList<String> list) 
    { 
     root = new File(rootFolder + "/SMSMonitor/" + subFolderName, fileName); 

     try 
     { 
      FileWriter write = new FileWriter(root); 

      write.append("ID, Date, Address, Body"); 
      write.append('\n'); 

      for (String s : list) 
      { 
       write.append(s); 
       write.append('\n'); 
      } 
      write.flush(); 
      write.close(); 
     } 
     catch (IOException e) 
     { 
      e.printStackTrace(); 
     } 
    } 


    private static String getFileName() 
    { 
     Calendar cal = Calendar.getInstance(); 
     SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); 
     String fileName = "Backup_" + sdf.format(cal.getTime()).toString() + ".csv"; 

     return fileName; 
    } 

    private static String GetSubFolder() 
    { 
     Calendar cal = Calendar.getInstance(); 
     SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 
     subFolderName = sdf.format(cal.getTime()).toString(); 

     return subFolderName; 
    } 

} 

可能的堆栈跟踪?:

// Compiled from ThreadGroup.java (version 1.5 : 49.0, super bit) 
public class java.lang.ThreadGroup implements java.lang.Thread$UncaughtExceptionHandler { 

    // Method descriptor #9 (Ljava/lang/String;)V 
    // Stack: 3, Locals: 2 
    public ThreadGroup(java.lang.String name); 
    0 aload_0 [this] 
    1 invokespecial java.lang.Object() [1] 
    4 new java.lang.RuntimeException [2] 
    7 dup 
    8 ldc <String "Stub!"> [3] 
    10 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    13 athrow 
     Line numbers: 
     [pc: 0, line: 5] 
     Local variable table: 
     [pc: 0, pc: 14] local: this index: 0 type: java.lang.ThreadGroup 
     [pc: 0, pc: 14] local: name index: 1 type: java.lang.String 

    // Method descriptor #17 (Ljava/lang/ThreadGroup;Ljava/lang/String;)V 
    // Stack: 3, Locals: 3 
    public ThreadGroup(java.lang.ThreadGroup parent, java.lang.String name); 
    0 aload_0 [this] 
    1 invokespecial java.lang.Object() [1] 
    4 new java.lang.RuntimeException [2] 
    7 dup 
    8 ldc <String "Stub!"> [3] 
    10 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    13 athrow 
     Line numbers: 
     [pc: 0, line: 6] 
     Local variable table: 
     [pc: 0, pc: 14] local: this index: 0 type: java.lang.ThreadGroup 
     [pc: 0, pc: 14] local: parent index: 1 type: java.lang.ThreadGroup 
     [pc: 0, pc: 14] local: name index: 2 type: java.lang.String 

    // Method descriptor #20()I 
    // Stack: 3, Locals: 1 
    public int activeCount(); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 7] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 

    // Method descriptor #20()I 
    // Stack: 3, Locals: 1 
    public int activeGroupCount(); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 8] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 

    // Method descriptor #23 (Z)Z 
    // Stack: 3, Locals: 2 
    public boolean allowThreadSuspension(boolean b); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 9] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 
     [pc: 0, pc: 10] local: b index: 1 type: boolean 

    // Method descriptor #27()V 
    // Stack: 3, Locals: 1 
    public final void checkAccess(); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 10] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 

    // Method descriptor #27()V 
    // Stack: 3, Locals: 1 
    public final void destroy(); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 11] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 

    // Method descriptor #30 ([Ljava/lang/Thread;)I 
    // Stack: 3, Locals: 2 
    public int enumerate(java.lang.Thread[] threads); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 12] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 
     [pc: 0, pc: 10] local: threads index: 1 type: java.lang.Thread[] 

    // Method descriptor #33 ([Ljava/lang/Thread;Z)I 
    // Stack: 3, Locals: 3 
    public int enumerate(java.lang.Thread[] threads, boolean recurse); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 13] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 
     [pc: 0, pc: 10] local: threads index: 1 type: java.lang.Thread[] 
     [pc: 0, pc: 10] local: recurse index: 2 type: boolean 

    // Method descriptor #35 ([Ljava/lang/ThreadGroup;)I 
    // Stack: 3, Locals: 2 
    public int enumerate(java.lang.ThreadGroup[] groups); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 14] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 
     [pc: 0, pc: 10] local: groups index: 1 type: java.lang.ThreadGroup[] 

    // Method descriptor #38 ([Ljava/lang/ThreadGroup;Z)I 
    // Stack: 3, Locals: 3 
    public int enumerate(java.lang.ThreadGroup[] groups, boolean recurse); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 15] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 
     [pc: 0, pc: 10] local: groups index: 1 type: java.lang.ThreadGroup[] 
     [pc: 0, pc: 10] local: recurse index: 2 type: boolean 

    // Method descriptor #20()I 
    // Stack: 3, Locals: 1 
    public final int getMaxPriority(); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 16] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 

    // Method descriptor #41()Ljava/lang/String; 
    // Stack: 3, Locals: 1 
    public final java.lang.String getName(); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 17] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 

    // Method descriptor #43()Ljava/lang/ThreadGroup; 
    // Stack: 3, Locals: 1 
    public final java.lang.ThreadGroup getParent(); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 18] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 

    // Method descriptor #27()V 
    // Stack: 3, Locals: 1 
    public final void interrupt(); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 19] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 

    // Method descriptor #46()Z 
    // Stack: 3, Locals: 1 
    public final boolean isDaemon(); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 20] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 

    // Method descriptor #46()Z 
    // Stack: 3, Locals: 1 
    public synchronized boolean isDestroyed(); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 21] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 

    // Method descriptor #27()V 
    // Stack: 3, Locals: 1 
    public void list(); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 22] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 

    // Method descriptor #50 (Ljava/lang/ThreadGroup;)Z 
    // Stack: 3, Locals: 2 
    public final boolean parentOf(java.lang.ThreadGroup g); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 23] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 
     [pc: 0, pc: 10] local: g index: 1 type: java.lang.ThreadGroup 

    // Method descriptor #27()V 
    // Stack: 3, Locals: 1 
    public final void resume(); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 24] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 

    // Method descriptor #54 (Z)V 
    // Stack: 3, Locals: 2 
    public final void setDaemon(boolean isDaemon); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 25] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 
     [pc: 0, pc: 10] local: isDaemon index: 1 type: boolean 

    // Method descriptor #56 (I)V 
    // Stack: 3, Locals: 2 
    public final void setMaxPriority(int newMax); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 26] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 
     [pc: 0, pc: 10] local: newMax index: 1 type: int 

    // Method descriptor #27()V 
    // Stack: 3, Locals: 1 
    public final void stop(); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 27] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 

    // Method descriptor #27()V 
    // Stack: 3, Locals: 1 
    public final void suspend(); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 28] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 

    // Method descriptor #41()Ljava/lang/String; 
    // Stack: 3, Locals: 1 
    public java.lang.String toString(); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 29] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 

    // Method descriptor #63 (Ljava/lang/Thread;Ljava/lang/Throwable;)V 
    // Stack: 3, Locals: 3 
    public void uncaughtException(java.lang.Thread t, java.lang.Throwable e); 
    0 new java.lang.RuntimeException [2] 
    3 dup 
    4 ldc <String "Stub!"> [3] 
    6 invokespecial java.lang.RuntimeException(java.lang.String) [4] 
    9 athrow 
     Line numbers: 
     [pc: 0, line: 30] 
     Local variable table: 
     [pc: 0, pc: 10] local: this index: 0 type: java.lang.ThreadGroup 
     [pc: 0, pc: 10] local: t index: 1 type: java.lang.Thread 
     [pc: 0, pc: 10] local: e index: 2 type: java.lang.Throwable 

    Inner classes: 
    [inner class info: #7 java/lang/Thread$UncaughtExceptionHandler, outer class info: #76 java/lang/Thread 
    inner name: #78 UncaughtExceptionHandler, accessflags: 1545 public abstract static] 
} 

控制台:

[2011-07-04 17:59:32 - SMSbackupv1] Android Launch! 
[2011-07-04 17:59:32 - SMSbackupv1] adb is running normally. 
[2011-07-04 17:59:32 - SMSbackupv1] Performing com.SMS.Backup.SMSbackupv1Activity activity launch 
[2011-07-04 17:59:32 - SMSbackupv1] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'Test' 
[2011-07-04 17:59:32 - SMSbackupv1] Uploading SMSbackupv1.apk onto device 'emulator-5554' 
[2011-07-04 17:59:33 - SMSbackupv1] Installing SMSbackupv1.apk... 
[2011-07-04 17:59:37 - SMSbackupv1] Success! 
[2011-07-04 17:59:37 - SMSbackupv1] Starting activity com.SMS.Backup.SMSbackupv1Activity on device emulator-5554 
[2011-07-04 17:59:41 - SMSbackupv1] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.SMS.Backup/.SMSbackupv1Activity } 
[2011-07-04 17:59:42 - SMSbackupv1] Attempting to connect debugger to 'com.SMS.Backup' on port 8621 

DDMS没有 调试窗口显示: enter image description here

应用程序加载一次展示了应用程序,然后意外停止错误调试器显示上面的窗口,我可以跨过这一切,如此下去,直到永远,然后错误再次显示:/

谢谢您提前。

+0

这不是你得到的错误。警告“Source not found”适用于Eclipse试图通过跟踪堆栈跟踪来调试崩溃的尝试。如果您粘贴您获得的堆栈跟踪,我们可能会提供帮助。 – Estel

+0

我想ive添加了我认为的堆栈跟踪?即时通讯过去使用净豆,而不是蚀,所以即时通讯不完全确定袋的踪迹是什么? :s – Houlahan

+0

哎呀,好的!看看:http://stackoverflow.com/questions/2581837/android-debugging-with-logcat-and-emulator-is-it-possible – Estel

回答

0

此类型警告在您调试缺少您的.xml文件的应用程序时得到。这可能是你的布局文件或清单文件。仔细检查你的.xml文件。
如果你可以看到logcat,那么你可以很容易地找到问题。

例如:源未找到和打开Instrumentation.class那么它可能ü没有在Android清单文件中添加您的活动类

0

这是我们许多人面临的问题,而这个问题可能不仅适用于测试应用程序,还适用于您在设备上安装的应用程序。 如果开发人员为特定布局设计了应用程序或未更改所有布局的XML,则会在某些设备中引发错误。

Android有4个布局(我们大多数人都知道)

布局 布局小 布局大型 布局,XLARGE

与我的问题是,我提出在XML文件中的变化支持2.7英寸的布局 - 小文件夹。 我跑了2.7英寸的模拟器,工作非常好。 现在,当我导出已签名的应用程序并在设备中进行测试时,它将失败。原因是我没有在Layout文件夹中进行必要的更改。 我的设备期望在main.xml文件中计算布局的一些字段 - 小而不是安装的布局版本。 所以你应该做的一些事情。 1)测试应用程序时,只需创建1个文件夹(包含所有xml文件的布局),这样您就可以在所有设备上测试应用程序的功能。2)如果您创建了所有布局文件夹,然后在任何XML文件中进行更改,请确保将更改级联到所有文件夹。

快乐的发展...

相关问题