마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

외부데이터 베이스 적용하는데 문제가 생겼어요..... [closed]

0 추천
public class DatabaseAccess {

    private SQLiteOpenHelper openHelper;
    private SQLiteDatabase db;
    private static DatabaseAccess instance;
    public static String TABLENAME = "bible2+1";
    Cursor c = null;
    ArrayList<String> book;
    static String T = "log";


    private DatabaseAccess (Context context){
        Log.d(T, "3");
        this.openHelper = new DatabaseOpenHelper(context);

    }

    public static DatabaseAccess getInstance(Context context){
        if(instance == null){
            Log.d(T, "2");
            instance = new DatabaseAccess(context);
        }
        return instance;
    }
    //open bible database


    //read bible database
    public void read(){
        Log.d(T, "8");
        this.db = openHelper.getReadableDatabase();
    }
    //close bible database
    public void close() {
        if (db != null) {
            this.db.close();
        }
    }

    //query for address by passing name

    public ArrayList<String> getBook() {
        String compare = null;
        c = db.rawQuery("select * from "+TABLENAME ,null);
        while(c.moveToNext()){
            if(!compare.equals(c.getString(7)))
            compare = c.getString(7);
            book.add(compare);
        }
        return book;

    }


}
package com.example.chahyunbin.cwapp;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;

public class DatabaseOpenHelper extends SQLiteAssetHelper {

    private static final String DATABASE_NAME = "bible2+1.sql";
    private static final int DATABASE_VERSTION = 1;
    String T = "log";




    public DatabaseOpenHelper(Context context) {

        super(context, DATABASE_NAME,null, DATABASE_VERSTION);
        Log.d(T, "4 ");
    }
}
public class Bible extends Activity{
    Context mContext;
    DatabaseAccess dbAccess;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.bible);

        String T = "log";


        ArrayList<String> book,chapter, verse;
        chapter = new ArrayList<String>();
        verse = new ArrayList<String>();

        Log.d(T,"1");
        dbAccess= DatabaseAccess.getInstance(getApplicationContext());
        Log.d(T,"5");

        Log.d(T, "7");
        dbAccess.read();
        Log.d(T, "9");


        book = dbAccess.getBook();








        Spinner bibleSpinner = (Spinner)findViewById(R.id.bibleSpinner);
        Spinner chapterSpinner = (Spinner)findViewById(R.id.chepterSpinner);
        Spinner verseSpinner = (Spinner)findViewById(R.id.verseSpinner);

        ArrayAdapter<String> bibleadapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,book);
        ArrayAdapter<String> chapteradapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,chapter);
        ArrayAdapter<String> verseadapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, verse);

        bibleadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        chapteradapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        verseadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        bibleSpinner.setAdapter(bibleadapter);
        chapterSpinner.setAdapter(chapteradapter);
        verseSpinner.setAdapter(verseadapter);
dbAccess.close();


    }
}
-- phpMyAdmin SQL Dump
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";



-- 데이터베이스: `q`
--

-- --------------------------------------------------------

--
-- 테이블 구조 `bible2`
--

CREATE TABLE IF NOT EXISTS `bible2` (
  `idx` int(11) NOT NULL AUTO_INCREMENT,
  `cate` int(11) NOT NULL,
  `book` int(11) NOT NULL,
  `chapter` int(11) NOT NULL,
  `paragraph` int(11) NOT NULL,
  `sentence` tinytext NOT NULL,
  `testament` varchar(10) NOT NULL,
  `long_label` varchar(30) NOT NULL,
  `short_label` varchar(10) NOT NULL,
  PRIMARY KEY (`idx`),
  KEY `idx_sequense` (`book`,`chapter`,`paragraph`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=31139 ;

--
-- 테이블의 덤프 데이터 `bible2`
--

INSERT INTO `bible2` (`idx`, `cate`, `book`, `chapter`, `paragraph`, `sentence`, `testament`, `long_label`, `short_label`) VALUES
(1, 1, 1, 1, 1, '<천지 창조> 태초에 하나님이 천지를 창조하시니라', '구', '창세기', '창'),
(2, 1, 1, 1, 2, '땅이 혼돈하고 공허하며 흑암이 깊음 위에 있고 하나님의 영은 수면 위에 운행하시니라', '구', '창세기', '창'),
(3, 1, 1, 1, 3, '하나님이 이르시되 빛이 있으라 하시니 빛이 있었고', '구', '창세기', '창'),
(299, 1, 1, 11, 32, '데라는 나이가 이백오 세가 되어 하란에서 죽었더라', '구', '창세기', '창'),
(300, 1, 1, 12, 1, '<여호와께서 아브람에게 이르시다> 여호와께서 아브람에게 이르시되 너는 너의 고향과 친척과 아버지의 집을 떠나 내가 네게 보여 줄 땅으로 가라', '구', '창세기', '창'),
(301, 1, 1, 12, 2, '내가 너로 큰 민족을 이루고 네게 복을 주어 네 이름을 창대하게 하리니 너는 복이 될지라', '구', '창세기', '창'),
(302, 1, 1, 12, 3, '너를 축복하는 자에게는 내가 복을 내리고 너를 저주하는 자에게는 내가 저주하리니 땅의 모든 족속이 너로 말미암아 복을 얻을 것이라 하신지라', '구', '창세기', '창');

 

 

성경앱을 만들어 보려고 하는데

맨 아래가 인터넷으로 다운받은 데이터 베이스고 그 위가 코드들인데 

    android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 1294): Could not open database
    #################################################################
    Error Code : 1294 (SQLITE_CANTOPEN_ENOENT)
    Caused By : Specified directory or database file does not exist.
        (unknown error (code 1294): Could not open database)
    #################################################################
        at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
        at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:272)
        at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:213)
        at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:699)
    

이런 에러가 뜨는데 제가 뭘 잘못한건가요.... 정말 모르겠네요.....

질문을 종료한 이유: 해결
aofhdzzz1 (690 포인트) 님이 2018년 10월 19일 질문
aofhdzzz1님이 2018년 11월 20일 closed
...