안드로이드 개발 질문/답변
(글 수 45,052)
SQLiteDatabase GDpedia_3 = SQLiteDatabase.openDatabase(Environment.getDataDirectory().getAbsolutePath() + "/data/" + getPackageName() + "/databases/gdpedia_3.sqlite", null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);
String[] columns = {"_id","src","name","kind","date","list"};
Cursor c = GDpedia_3.query("album", columns, null, null, null, null, "_id");
int albumcount = c.getCount();
for (int i=1;i<=albumcount;i++) {
// ALBUM Download Start
c.move(i);
DOWN_URL = c.getString(1);
FILE_TARGET = new File(Environment.getDataDirectory().getAbsolutePath() + "/data/" + getPackageName() + "/album/albumimg_" + i + ".jpg");
URL url = null;
InputStream in = null;
FileOutputStream out = null;
int ch=0;
try {
url = new URL("DOWN_URL);
in = url.openStream();
out = new FileOutputStream(FILE_TARGET);
while((ch=in.read()) !=-1) {
out.write(ch);
}
in.close();
out.close();
publishProgress("(" + i + "/" + albumcount + ")" + "albumimg_" + i + ".jpg"); // Output
} catch(Exception e) {
e.printStackTrace();
}// ALBUM Download End
}// For ALBUMs Download End
asynctask를 이용해 작동시키는데
소스가 잘 돌아가다가 갑자기 강제종료가 뜨는데 왜 뜨는지 모르겠어요 소스랑 이미지 파일 경로는 문제 없어요 한 4번째 까지 잘 다운로드 되다가 꺼집니다 ㅠㅠ 도와주세요
아 그리고 또 질문 이 이미지들을 어디다 다운받아야 xml에서 쓸 수 있는 거죠??
2012.12.21 17:24:23
12-21 08:23:29.596: E/AndroidRuntime(275): FATAL EXCEPTION: AsyncTask #1
12-21 08:23:29.596: E/AndroidRuntime(275): java.lang.RuntimeException: An error occured while executing doInBackground()
12-21 08:23:29.596: E/AndroidRuntime(275): at android.os.AsyncTask$3.done(AsyncTask.java:200)
12-21 08:23:29.596: E/AndroidRuntime(275): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
12-21 08:23:29.596: E/AndroidRuntime(275): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
12-21 08:23:29.596: E/AndroidRuntime(275): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
12-21 08:23:29.596: E/AndroidRuntime(275): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
12-21 08:23:29.596: E/AndroidRuntime(275): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
12-21 08:23:29.596: E/AndroidRuntime(275): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
12-21 08:23:29.596: E/AndroidRuntime(275): at java.lang.Thread.run(Thread.java:1096)
12-21 08:23:29.596: E/AndroidRuntime(275): Caused by: android.database.CursorIndexOutOfBoundsException: Index 10 requested, with a size of 10
12-21 08:23:29.596: E/AndroidRuntime(275): at android.database.AbstractCursor.checkPosition(AbstractCursor.java:580)
12-21 08:23:29.596: E/AndroidRuntime(275): at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:214)
12-21 08:23:29.596: E/AndroidRuntime(275): at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:41)
12-21 08:23:29.596: E/AndroidRuntime(275): at com.example.gdpedia.Act_update$UpdateTask.doInBackground(Act_update.java:109)
12-21 08:23:29.596: E/AndroidRuntime(275): at com.example.gdpedia.Act_update$UpdateTask.doInBackground(Act_update.java:1)
12-21 08:23:29.596: E/AndroidRuntime(275): at android.os.AsyncTask$2.call(AsyncTask.java:185)
12-21 08:23:29.596: E/AndroidRuntime(275): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
12-21 08:23:29.596: E/AndroidRuntime(275): ... 4 more
에러 로그 입니다...
2012.12.21 17:59:58
12-21 08:23:29.596: E/AndroidRuntime(275): Caused by: android.database.CursorIndexOutOfBoundsException: Index 10 requested, with a size of 10 커서가 범위보다 넘어갔네요
에러 로그를 올려주세요
로그를 올려주시면 어디서 에러가 났는지 다른분들이 쉽게 알려 드릴수 있습니다
그리고 drawable 폴더 외부의 이미지들을 레이아웃 xml 파일에서 작업할 수 없습니다
gen 에 있는 R.java 에 리소스로 등록이 되어야 사용할 수 있습니다
이미지를 drawable 폴더에 다운로드하여 저장할 수 없습니다
다운로드한 이미지는 자바 소스에서 다운 경로를 통하여 이미지를 가져와서 뷰에 적용 시키세요