2013-03-04 2 views
0

샘플 앱이 android 버전 4.2에 있습니다. 각 줄마다 중단 점을 설정했습니다. 디버깅 할 때 갑자기 디버깅이 "원본 첨부 파일에 SQLiteOpenHelper.class 파일의 원본이 포함되어 있지 않습니다."라는 말을 멈추었습니다.소스 첨부 파일에 SQLiteOpenHelper.class 파일의 소스가 없습니다.

jar 파일을 첨부했지만 여전히 오류를보고합니다. 현재 모든 것을 설치했습니다. 그러나이 오류의 원인을 알지 못합니다.

내가 잘못 어디로 갔는지

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 

    }   

} 

사람이 제안 주 시겠어요 내 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.

감사합니다.

답변

1

.jar는 자체 소스 코드를 공개하지 않습니다. 찾아 볼 수 있으려면 소스 코드를 직접 추가해야합니다.

당신은 안드로이드 코드 :

수동으로 추가 할 수 있습니다 디버깅의 사용에 의문을 제기 할 수 있도록, 실수는 자신의 옆에있을 것입니다하지만 확신 할 수있다 (기억이 어떻게, 구글) 과거에 나에게 좋은 일을 한 이클립스 플러그인을 사용하라. https://code.google.com/p/adt-addons/ 조금 오래되었을 수도 있습니다.

+0

솔루션을 제공해 주셔서 감사합니다. 소스 코드를 다운로드하여 첨부하십시오. 이제 내 앱이 원활하게 돌아갑니다. – Mahe

관련 문제