2013-03-04 36 views
0

我有一個Android版本4.2的示例應用程序。我爲每一行都設置了斷點。在調試時,突然調試停止說「源附件不包含文件SQLiteOpenHelper.class的源」。源附件不包含文件的來源SQLiteOpenHelper.class

我附加了jar文件,但它仍然報告錯誤。目前安裝了所有東西。但不知道這個錯誤的原因。

這是我MainActivity.java

package com.example.newwaterreadingapp; 


import java.util.Calendar; 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.ContentValues; 
import android.database.sqlite.SQLiteDatabase; 
import android.view.Menu; 
import android.view.View; 
import android.view.animation.AnimationUtils; 
import android.widget.Button; 
import android.widget.DatePicker; 
import android.widget.LinearLayout; 
import android.widget.RelativeLayout; 
import android.widget.TextView; 
import android.widget.Toast; 



public class MainActivity extends Activity { 

protected static final android.content.Context Context = null; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.activity_main); 

    final RelativeLayout mainLayout=(RelativeLayout)findViewById(R.id.mainLayout); 
    mainLayout.startAnimation(AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right)); 
    final LinearLayout readingLayout=(LinearLayout)findViewById(R.id.waterReading); 
    readingLayout.startAnimation(AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right)); 
    final LinearLayout pastDatePickerLayout=(LinearLayout)findViewById(R.id.PastDatePickerLayout); 
    pastDatePickerLayout.startAnimation(AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right)); 
    readingLayout.setVisibility(View.GONE); 
    pastDatePickerLayout.setVisibility(View.GONE); 


    Button AddWaterReading=(Button)findViewById(R.id.AddWaterReading); //click on + button. 
    AddWaterReading.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      readingLayout.setVisibility(View.VISIBLE); 
      mainLayout.setVisibility(View.GONE); 
      TextView txtgetCurrentDate=(TextView)findViewById(R.id.currentDate); 
      final Calendar c=Calendar.getInstance(); 
      txtgetCurrentDate.setText((c.get(Calendar.MONTH)+1)+"/"+c.get(Calendar.DATE)+"/"+c.get(Calendar.YEAR)); 

     } 
    }); 

    TextView getPastDate=(TextView)findViewById(R.id.getDate); 
    getPastDate.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      readingLayout.setVisibility(View.GONE); 
      pastDatePickerLayout.setVisibility(View.VISIBLE);       
     } 
    }); 

    Button savePastDate=(Button)findViewById(R.id.savePastDate); 
    savePastDate.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      pastDatePickerLayout.setVisibility(View.GONE); 
      readingLayout.setVisibility(View.VISIBLE); 

      DatePicker getPastDatepicker=(DatePicker)findViewById(R.id.getPastDate); 
       int YY=getPastDatepicker.getYear(); 
       int MM=getPastDatepicker.getMonth(); 
       int DD=getPastDatepicker.getDayOfMonth(); 
       TextView getPastDate=(TextView)findViewById(R.id.getDate); 
       getPastDate.setText((MM+1)+"/"+DD+"/"+YY); 
     } 
    }); 


    Button saveWaterReadingToDB=(Button)findViewById(R.id.saveWaterReading); 
    saveWaterReadingToDB.setOnClickListener(new View.OnClickListener() { 


     @Override 
     public void onClick(View v) { 
      readingLayout.setVisibility(View.GONE); 
      mainLayout.setVisibility(View.VISIBLE);  

      TextView getPastDate=(TextView)findViewById(R.id.getDate); 
      TextView txtgetCurrentDate=(TextView)findViewById(R.id.currentDate); 
      TextView txtgetWaterReading=(TextView)findViewById(R.id.water_Reading); 


      CreateDB helper =new CreateDB(Context, "WaterElectricityReading.db", null, 1);    

      SQLiteDatabase DB; 

      DB=helper.getWritableDatabase(); 

      String pastDate=getPastDate.getText().toString().trim(); 
      String currentDate=txtgetCurrentDate.getText().toString().trim(); 
      String waterReading=txtgetWaterReading.getText().toString().trim(); 


      ContentValues values=new ContentValues(); 
      values.put(CreateDB.COLUMN_NAME_READING_MODE,"Water"); 
      values.put(CreateDB.COLUMN_NAME_PASTDATETIME, pastDate); 
      values.put(CreateDB.COLUMN_NAME_CURRENTDATETIME, currentDate); 
      values.put(CreateDB.COLUMN_NAME_READINGVALUE, waterReading); 

      DB.insert(CreateDB.TABLE_NAME, null, values); 
      Toast.makeText(getApplicationContext(), "Added", Toast.LENGTH_LONG).show(); 
      DB.close(); 
      helper.close();     
     } 
    }); 

} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 

} 

和CreateDB.java

package com.example.newwaterreadingapp; 


import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteDatabase.CursorFactory; 
import android.database.sqlite.SQLiteOpenHelper; 



public class CreateDB extends SQLiteOpenHelper{ 

    private static final String DATABASE_NAME="WaterElectricityReading.db"; 
    public static final String TABLE_NAME="Reading"; 
    public static final String COLUMN_NAME_READING_ID="_Id"; 
    public static final String COLUMN_NAME_READING_MODE="ReadingMode"; 
    public static final String COLUMN_NAME_PASTDATETIME="PastDateTime"; 
    public static final String COLUMN_NAME_CURRENTDATETIME="CurrentDateTime"; 
    public static final String COLUMN_NAME_READINGVALUE="ReadingValue"; 
    public static final int DATABASE_VERSION = 1; 
    public static String DB_PATH = ""; 


    public CreateDB(Context context,String name, CursorFactory factory, 
      int version) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION);         
    } 

    public void onCreate(SQLiteDatabase DB){ 

     final String CREATE_TABLE="create table if not exists "+ TABLE_NAME + "("+ COLUMN_NAME_READING_ID +" integer primary key autoincrement," 
       +COLUMN_NAME_READING_MODE+" text not null,"+COLUMN_NAME_PASTDATETIME+" date not null,"+COLUMN_NAME_CURRENTDATETIME 
       +" date not null,"+COLUMN_NAME_READINGVALUE+" integer not null"+");"; 
     DB.execSQL(CREATE_TABLE);              

    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // TODO Auto-generated method stub 

    }   

} 

任何人都可以請建議我哪裏錯了。

謝謝。

回答

1

.jar不會公開其源代碼。您必須自己添加源代碼才能瀏覽它。

你可以相當肯定,雖然這個錯誤會在自己的身邊,所以你可能會問,使用調試Android的代碼:)

您可以手動添加的(不記得如何,谷歌)或者使用過去爲我做得很好的Eclipse插件; https://code.google.com/p/adt-addons/ 雖然可能有些過時。

+0

感謝您的解決方案!得到了下載和附加的源代碼。現在我的應用程序運行順利。 – Mahe 2013-03-04 09:10:30

相關問題