2017-09-25 10 views
-1

저는이 문제에 익숙하지 않고 SugarORM을 구현하여 데이터베이스를 만들려고 노력하고 있습니다. 왜냐하면 더 쉽기 때문입니다. 나는이 튜토리얼의 모든 단계를 밟아서 내 앱에서하고 싶은 일에 적용했지만 데이터베이스에 무언가를 저장하려고 할 때마다 앱이 다운되고 이전 활동으로 돌아갑니다. 누구나 내가 뭘 잘못하고 있다고 말할 수 있습니까? 5 개의 입력을 데이터베이스에 저장하고 이름을 입력하여 삭제할 수 있습니다 (이름도 데이터베이스에 저장 됨).SugarORM이 작동하지 않습니다.

09-25 15:00:29.909 18121-18121/com.example.cabr.teste E/SQLiteLog: (1) 
09-25 15:00:29.911 18121-18121/com.example.cabr.teste E/AndroidRuntime: FATAL EXCEPTION: main 
    Process: com.example.cabr.teste, PID: 18121 
    android.database.sqlite.SQLiteException: no such table: SUGAR_ORM (Sqlite code 1): , 
    while compiling: INSERT OR REPLACE INTO SUGAR_ORM(ID,SIMULT,POTENCIA,QUANTIDADE,EQUIPAMENTO,HORAS) VALUES (?,?,?,?,?,?), 
    (OS error - 2:No such file or directory) 
     at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) 
     at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:925) 
     at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:536) 
     at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:603) 
     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:63) 
     at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31) 
     at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1725) 
     at com.orm.SugarRecord.save(SugarRecord.java:266) 
     at com.orm.SugarRecord.save(SugarRecord.java:360) 
     at com.example.cabr.teste.Main14Activity$16.onClick(Main14Activity.java:417) 
     at android.view.View.performClick(View.java:5647) 
     at android.view.View$PerformClick.run(View.java:22465) 
     at android.os.Handler.handleCallback(Handler.java:761) 
     at android.os.Handler.dispatchMessage(Handler.java:98) 
     at android.os.Looper.loop(Looper.java:156) 
     at android.app.ActivityThread.main(ActivityThread.java:6577) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831) 
09-25 15:00:29.919 512-893/? E/logserver: imonitor_add_dynamic_path, path:/data/system/dropbox/[email protected] 
09-25 15:00:29.923 1374-11353/? E/ReportTools: This is not beta user build 
09-25 15:00:30.082 1374-11624/? E/HsmCoreServiceImpl: onTransact in code is: 102 
09-25 15:00:30.132 1374-11619/? E/Process: isHighLoadProcess: get cpu failed 
09-25 15:00:30.736 18416-18447/com.example.cabr.teste E/OpenGLRenderer: allen debug liyu Key: 0 
09-25 15:00:30.741 18416-18447/com.example.cabr.teste E/OpenGLRenderer: allen debug liyu Key: 34359738371 
09-25 15:00:30.742 18416-18447/com.example.cabr.teste E/OpenGLRenderer: allen debug liyu Key: 240518168576 
09-25 15:00:30.743 18416-18447/com.example.cabr.teste E/OpenGLRenderer: allen debug liyu Key: 68719476736 
09-25 15:00:30.745 18416-18447/com.example.cabr.teste E/OpenGLRenderer: allen debug liyu Key: 1 

그리고 내 코드 : 여기

는 로그 캣입니다

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

    final TextView textView12 = (TextView) findViewById(R.id.textView12); 

    final Button button1 = (Button) findViewById(R.id.button1); 
    final Button button2 = (Button) findViewById(R.id.button2); 

    final EditText editText1 = (EditText) findViewById(R.id.editText1); 
    final EditText editText2 = (EditText) findViewById(R.id.editText2); 
    final EditText editText3 = (EditText) findViewById(R.id.editText3); 

    final Spinner spinner1 = (Spinner) findViewById(R.id.spinner1); 
    final Spinner spinner2 = (Spinner) findViewById(R.id.spinner2); 

    final CheckBox checkBox1 = (CheckBox) findViewById(R.id.checkbox1); 

    final ImageView imageView1 = (ImageView) findViewById(R.id.imageview1); 
    ImageView imageView2 = (ImageView) findViewById(R.id.imageview2); 
    ImageView imageView3 = (ImageView) findViewById(R.id.imageview3); 
    ImageView imageView4 = (ImageView) findViewById(R.id.imageview4); 
    ImageView imageView5 = (ImageView) findViewById(R.id.imageview5); 
    ImageView imageView6 = (ImageView) findViewById(R.id.imageview6); 
    ImageView imageView7 = (ImageView) findViewById(R.id.imageview7); 
    ImageView imageView8 = (ImageView) findViewById(R.id.imageview8); 
    ImageView imageView9 = (ImageView) findViewById(R.id.imageview9); 
    ImageView imageView10 = (ImageView) findViewById(R.id.imageview10); 
    ImageView imageView11 = (ImageView) findViewById(R.id.imageview11); 
    ImageView imageView12 = (ImageView) findViewById(R.id.imageview12); 
    ImageView imageView13 = (ImageView) findViewById(R.id.imageview13); 
    ImageView imageView14 = (ImageView) findViewById(R.id.imageview14); 
    ImageView imageView15 = (ImageView) findViewById(R.id.imageview15); 
    ImageView imageView16 = (ImageView) findViewById(R.id.imageview16); 

    final TableLayout tableLayout1 = (TableLayout) findViewById(R.id.tablelayout1); 

    final ScrollView scrollView1 = (ScrollView) findViewById(R.id.scrollView); 


    imageView2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      onBackPressed(); 
     } 
    }); 

    imageView3.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent i = new Intent(getApplicationContext(), Main9Activity.class); 
      startActivity(i); 
     } 
    }); 

    imageView4.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      imageView1.setImageResource(R.drawable.televisao2); 
      textView12.setText(getString(R.string.televisor)); 
      tableLayout1.setVisibility(View.VISIBLE); 
      imageView1.setVisibility(View.VISIBLE); 
      textView12.setVisibility(View.VISIBLE); 
      button1.setVisibility(View.VISIBLE); 
      button2.setVisibility(View.GONE); 
      scrollView1.fullScroll(ScrollView.FOCUS_UP); 
      editText1.setText(""); 
      editText2.setText(""); 
      editText3.setText(""); 
     } 
    }); 

    imageView5.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      imageView1.setImageResource(R.drawable.sistemasom2); 
      textView12.setText(getString(R.string.sistemasom)); 
      tableLayout1.setVisibility(View.VISIBLE); 
      imageView1.setVisibility(View.VISIBLE); 
      textView12.setVisibility(View.VISIBLE); 
      button1.setVisibility(View.VISIBLE); 
      scrollView1.fullScroll(ScrollView.FOCUS_UP); 
      editText1.setText(""); 
      editText2.setText(""); 
      editText3.setText(""); 
     } 
    }); 

    imageView6.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      imageView1.setImageResource(R.drawable.leitordedvd2); 
      textView12.setText(getString(R.string.leitordvd)); 
      tableLayout1.setVisibility(View.VISIBLE); 
      imageView1.setVisibility(View.VISIBLE); 
      textView12.setVisibility(View.VISIBLE); 
      button1.setVisibility(View.VISIBLE); 
      button2.setVisibility(View.GONE); 
      scrollView1.fullScroll(ScrollView.FOCUS_UP); 
      editText1.setText(""); 
      editText2.setText(""); 
      editText3.setText(""); 
     } 
    }); 

    imageView7.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      imageView1.setImageResource(R.drawable.consoladejogos2); 
      textView12.setText(getString(R.string.consolajogos)); 
      tableLayout1.setVisibility(View.VISIBLE); 
      imageView1.setVisibility(View.VISIBLE); 
      textView12.setVisibility(View.VISIBLE); 
      button1.setVisibility(View.VISIBLE); 
      button2.setVisibility(View.GONE); 
      scrollView1.fullScroll(ScrollView.FOCUS_UP); 
      editText1.setText(""); 
      editText2.setText(""); 
      editText3.setText(""); 
     } 
    }); 

    imageView8.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      imageView1.setImageResource(R.drawable.aspirador2); 
      textView12.setText(getString(R.string.aspirador)); 
      tableLayout1.setVisibility(View.VISIBLE); 
      imageView1.setVisibility(View.VISIBLE); 
      textView12.setVisibility(View.VISIBLE); 
      button1.setVisibility(View.VISIBLE); 
      button2.setVisibility(View.GONE); 
      scrollView1.fullScroll(ScrollView.FOCUS_UP); 
      editText1.setText(""); 
      editText2.setText(""); 
      editText3.setText(""); 
     } 
    }); 

    imageView9.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      imageView1.setImageResource(R.drawable.arcondicionado2); 
      textView12.setText(getString(R.string.arcondicionado)); 
      tableLayout1.setVisibility(View.VISIBLE); 
      imageView1.setVisibility(View.VISIBLE); 
      textView12.setVisibility(View.VISIBLE); 
      button1.setVisibility(View.VISIBLE); 
      scrollView1.fullScroll(ScrollView.FOCUS_UP); 
      editText1.setText(""); 
      editText2.setText(""); 
      editText3.setText(""); 
     } 
    }); 

    imageView10.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      imageView1.setImageResource(R.drawable.lampada2); 
      textView12.setText(getString(R.string.lampadas)); 
      tableLayout1.setVisibility(View.VISIBLE); 
      imageView1.setVisibility(View.VISIBLE); 
      textView12.setVisibility(View.VISIBLE); 
      button1.setVisibility(View.VISIBLE); 
      button2.setVisibility(View.GONE); 
      scrollView1.fullScroll(ScrollView.FOCUS_UP); 
      editText1.setText(""); 
      editText2.setText(""); 
      editText3.setText(""); 
     } 
    }); 

    imageView11.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      imageView1.setImageResource(R.drawable.computadorportatil2); 
      textView12.setText(getString(R.string.computadorportatil)); 
      tableLayout1.setVisibility(View.VISIBLE); 
      imageView1.setVisibility(View.VISIBLE); 
      textView12.setVisibility(View.VISIBLE); 
      button1.setVisibility(View.VISIBLE); 
      button2.setVisibility(View.GONE); 
      scrollView1.fullScroll(ScrollView.FOCUS_UP); 
      editText1.setText(""); 
      editText2.setText(""); 
      editText3.setText(""); 
     } 
    }); 

    imageView12.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      imageView1.setImageResource(R.drawable.aquecedoraoleo2); 
      textView12.setText(getString(R.string.aquecedoreletr)); 
      tableLayout1.setVisibility(View.VISIBLE); 
      imageView1.setVisibility(View.VISIBLE); 
      textView12.setVisibility(View.VISIBLE); 
      button1.setVisibility(View.VISIBLE); 
      button2.setVisibility(View.GONE); 
      scrollView1.fullScroll(ScrollView.FOCUS_UP); 
      editText1.setText(""); 
      editText2.setText(""); 
      editText3.setText(""); 
     } 
    }); 

    imageView13.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      imageView1.setImageResource(R.drawable.ventoinha2); 
      textView12.setText(getString(R.string.ventoinha)); 
      tableLayout1.setVisibility(View.VISIBLE); 
      imageView1.setVisibility(View.VISIBLE); 
      textView12.setVisibility(View.VISIBLE); 
      button1.setVisibility(View.VISIBLE); 
      button2.setVisibility(View.GONE); 
      scrollView1.fullScroll(ScrollView.FOCUS_UP); 
      editText1.setText(""); 
      editText2.setText(""); 
      editText3.setText(""); 
     } 
    }); 

    imageView14.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      imageView1.setImageResource(R.drawable.desumidificador2); 
      textView12.setText(getString(R.string.desumificador)); 
      tableLayout1.setVisibility(View.VISIBLE); 
      imageView1.setVisibility(View.VISIBLE); 
      textView12.setVisibility(View.VISIBLE); 
      button1.setVisibility(View.VISIBLE); 
      button2.setVisibility(View.GONE); 
      scrollView1.fullScroll(ScrollView.FOCUS_UP); 
      editText1.setText(""); 
      editText2.setText(""); 
      editText3.setText(""); 
     } 
    }); 

    imageView15.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      imageView1.setImageResource(R.drawable.ferroeletrico2); 
      textView12.setText(getString(R.string.ferroeletrico)); 
      tableLayout1.setVisibility(View.VISIBLE); 
      imageView1.setVisibility(View.VISIBLE); 
      textView12.setVisibility(View.VISIBLE); 
      button1.setVisibility(View.VISIBLE); 
      button2.setVisibility(View.GONE); 
      scrollView1.fullScroll(ScrollView.FOCUS_UP); 
      editText1.setText(""); 
      editText2.setText(""); 
      editText3.setText(""); 
     } 
    }); 

    imageView16.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Context context = getApplicationContext(); 
      CharSequence text = "Marque a caixa se utiliza este equipamento em simultâneo com outros equipamentos."; 
      int duration = Toast.LENGTH_LONG; 

      Toast toast = Toast.makeText(context, text, duration); 
      toast.show(); 
     } 
    }); 

    button1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      String equipamento, tipohoras, periodo; 
      Integer potencia, quantidade, simult; 
      Double quanthoras; 
      Double horas = 0.0; 

      button2.setVisibility(View.VISIBLE); 
      button1.setVisibility(View.GONE); 

      equipamento = textView12.getText().toString(); 
      potencia = Integer.parseInt(editText1.getText().toString()); 
      quantidade = Integer.parseInt(editText2.getText().toString()); 
      quanthoras = Double.parseDouble(editText3.getText().toString()); 
      tipohoras = spinner1.getSelectedItem().toString(); 
      periodo = spinner2.getSelectedItem().toString(); 
      simult = 0; 

      if (potencia==0){ 
       if (equipamento.equals("Televisor")){ 
        potencia = 90; 
       } 
       if (equipamento.equals("Sistema de Som")){ 
        potencia = 150; 
       } 
       if (equipamento.equals("Leitor de DVD")){ 
        potencia = 195; 
       } 
       if (equipamento.equals("Consola de Jogos")){ 
        potencia = 140; 
       } 
       if (equipamento.equals("Aspirador")){ 
        potencia = 600; 
       } 
       if (equipamento.equals("Ar Condicionado")){ 
        potencia = 1400; 
       } 
       if (equipamento.equals("Lâmpadas")){ 
        potencia = 10; 
       } 
       if (equipamento.equals("Computador Portátil")){ 
        potencia = 65; 
       } 
       if (equipamento.equals("Aquecedor Elétrico")){ 
        potencia = 1500; 
       } 
       if (equipamento.equals("Ventoinha")){ 
        potencia = 80; 
       } 
       if (equipamento.equals("Desumidificador")){ 
        potencia = 150; 
       } 
       if (equipamento.equals("Ferro Elétrico")){ 
        potencia = 1000; 
       } 
      } 

      if (quanthoras==0){ 
       if (equipamento.equals("Televisor")){ 
        horas = 5.0; 
       } 
       if (equipamento.equals("Sistema de Som")){ 
        horas = 8.0; 
       } 
       if (equipamento.equals("Leitor de DVD")){ 
        horas = 3.0; 
       } 
       if (equipamento.equals("Consola de Jogos")){ 
        horas = 3.0; 
       } 
       if (equipamento.equals("Aspirador")){ 
        horas = 1.04; 
       } 
       if (equipamento.equals("Ar Condicionado")){ 
        horas = 8.0; 
       } 
       if (equipamento.equals("Lâmpadas")){ 
        horas = 5.0; 
       } 
       if (equipamento.equals("Computador Portátil")){ 
        horas = 8.0; 
       } 
       if (equipamento.equals("Aquecedor Elétrico")){ 
        horas = 4.0; 
       } 
       if (equipamento.equals("Ventoinha")){ 
        horas = 6.0; 
       } 
       if (equipamento.equals("Desumidificador")){ 
        horas = 4.0; 
       } 
       if (equipamento.equals("Ferro Elétrico")){ 
        horas = 1.0; 
       } 
      } else { 
       if (periodo.equals("dia")){ 
        if (tipohoras.equals("min")){ 
         horas = quanthoras/60; 
        } 
        if (tipohoras.equals("h")){ 
         horas = quanthoras; 
        } 
       } 

       if (periodo.equals("semana")){ 
        if (tipohoras.equals("min")){ 
         horas = (quanthoras/60)/7; 
        } 
        if (tipohoras.equals("h")){ 
         horas = quanthoras/7; 
        } 
       } 

       if (periodo.equals("mês")){ 
        if (tipohoras.equals("min")){ 
         horas = (quanthoras/60)/30.42; 
        } 
        if (tipohoras.equals("h")){ 
         horas = quanthoras/30.42; 
        } 
       } 
      } 

      SugarORM sugarORM = new SugarORM(equipamento, potencia, quantidade, horas, simult); 
      sugarORM.save(); 

      Toast.makeText(getBaseContext(),"O equipamento foi adicionado com sucesso.", Toast.LENGTH_LONG).show(); 





     } 
    }); 

    button2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      button2.setVisibility(View.GONE); 
      tableLayout1.setVisibility(View.GONE); 
      imageView1.setVisibility(View.GONE); 
      textView12.setVisibility(View.GONE); 

      String equipamento; 
      equipamento = textView12.getText().toString(); 

      SugarORM sugarORM = SugarORM.findById(SugarORM.class, 1); 
      sugarORM.delete(); 


      Toast.makeText(getBaseContext(),"O equipamento foi removido com sucesso.", Toast.LENGTH_LONG).show(); 

     } 
    }); 

} 

}

그리고 SugarORM 클래스 :

public class SugarORM extends SugarRecord { 
String equipamento; 
Integer potencia; 
Integer quantidade; 
Double horas; 
Integer simult; 

public SugarORM(){ 

} 

public SugarORM(String equipamento, Integer potencia, Integer quantidade, Double horas, Integer simult){ 
    this.equipamento = equipamento; 
    this.potencia = potencia; 
    this.quantidade = quantidade; 
    this.horas = horas; 
    this.simult = simult; 
} 

}

그리고 매니페스트 :

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:roundIcon="@mipmap/ic_launcher_round" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme.NoActionBar" 
    android:name="com.orm.SugarApp"> 
    <meta-data 
     android:name="DATABASE" 
     android:value="notes.db" /> 
    <meta-data 
     android:name="VERSION" 
     android:value="1" /> 
    <meta-data 
     android:name="QUERY_LOG" 
     android:value="true" /> 
    <meta-data 
     android:name="DOMAIN_PACKAGE_NAME" 
     android:value="com.example.cabr.teste" /> 
    <activity android:name=".Main10Activity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".Main2Activity" /> 
    <activity android:name=".Main3Activity" /> 
    <activity android:name=".Main4Activity" /> 
    <activity android:name=".Main5Activity" /> 
    <activity android:name=".Main6Activity" /> 
    <activity android:name=".Main7Activity" /> 
    <activity android:name=".Main8Activity" /> 
    <activity android:name=".MainActivity" /> 
    <activity android:name=".Main9Activity" /> 
    <activity android:name=".Main11Activity" /> 
    <activity android:name=".Main12Activity" /> 
    <activity android:name=".Main13Activity" /> 
    <activity android:name=".Main14Activity" /> 
    <activity android:name=".Main15Activity" /> 
    <activity android:name=".Main16Activity" /> 
    <activity android:name=".Main17Activity" /> 
    <activity android:name=".Main18Activity" /> 
    <activity android:name=".Main19Activity" /> 
    <activity android:name=".Main20Activity"></activity> 
</application> 

답변

0

귀하의 문제가 로그 no such table:에서 언급 한 바와 같이 SugarORM 테이블을 찾을 수 있다는 것입니다. 응용 프로그램을 삭제하고 다시 실행하거나 시작 작업시 sugarDB.onCreate() (으)로 전화를 시도하십시오.

1

것은에서 선언 라인을 변경해보십시오 : 매니페스트

0

문제에 VERSION 설정을 증가 실패

public class SugarORM extends SugarRecord 

public class SugarORM extends SugarRecord<SugarORM> 

모든 사람이 만약

에 당신이 변화를하지 않는 것입니다 AndroidManifest.xml에 데이터베이스의 버전. 코드에서 뭔가를 변경할 때마다 (이 경우 SugarORM) 매니페스트의 버전을 업데이트해야합니다. 그렇지 않으면 데이터베이스를 업데이트하지 않으므로이 오류가 발생합니다.

속성 이름을 변경하는 경우와 동일하게 오류가 발생합니다. 해당 열이 없습니다.

<meta-data android:name="VERSION" android:value="2" />