Скольжение, показывающее только некоторые (случайные) изображения с Google ДискаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Скольжение, показывающее только некоторые (случайные) изображения с Google Диска

Сообщение Anonymous »

У меня есть приложение-викторина, в котором есть категория с идентификацией изображения, ничего особенного.
Чтобы предотвратить увеличение размера приложения, я решил хранить изображения на Google Диске (мне это показалось лучшим решением, потому что я могу создавать изображения на мой компьютер, а затем немедленно передать их на Диск и, что более важно, автоматически).
НО моя функция показывает только некоторые изображения, и всегда случайные. Представьте, что у вас есть 10 вопросов викторины: первое изображение загружено, второе и третье нет, а четвертое да и так далее. Всегда случайно. В следующий раз 1-й не загружается, а 2-й да, 3-й нет...
Код функции:

Код: Выделить всё

private void loadImage(String id, ImageView mainImage){
Glide.with(this)
.asBitmap()
.load(BASE_URL + id)
.fitCenter()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.dontAnimate()
.listener(new RequestListener() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {
assert e != null;
for (Throwable t : e.getRootCauses()) {
Log.e("TAG", "Caused by", t);
}
e.logRootCauses("TAG");
return false;
}

@Override
public boolean onResourceReady(Bitmap resource, Object model, Target  target, DataSource dataSource, boolean isFirstResource) {
Toast.makeText(getApplicationContext(), "Image ready!", Toast.LENGTH_LONG).show();
return false;
}
})
.into(mainImage);
}
BASE_URL является стандартным "https://docs.google.com/uc?id=", а id извлекается как вопрос из массива
Ошибка Logcat:

Код: Выделить всё

E  Caused by com.bumptech.glide.load.HttpException: Failed to connect or obtain data, status code: -1
at com.bumptech.glide.load.data.HttpUrlFetcher.loadDataWithRedirects(HttpUrlFetcher.java:98)
at com.bumptech.glide.load.data.HttpUrlFetcher.loadDataWithRedirects(HttpUrlFetcher.java:122)
at com.bumptech.glide.load.data.HttpUrlFetcher.loadData(HttpUrlFetcher.java:58)
at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.loadData(MultiModelLoader.java:100)
at com.bumptech.glide.load.engine.SourceGenerator.startNextLoad(SourceGenerator.java:95)
at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:88)
at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:311)
at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:277)
at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:235)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:421)
at java.lang.Thread.run(Thread.java:923)
at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultPriorityThreadFactory$1.run(GlideExecutor.java:380)
Caused by: java.net.SocketTimeoutException: timeout
at com.android.okhttp.okio.Okio$3.newTimeoutException(Okio.java:214)
at com.android.okhttp.okio.AsyncTimeout.exit(AsyncTimeout.java:263)
at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:217)
at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:307)
at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:301)
at com.android.okhttp.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:197)
at com.android.okhttp.internal.http.Http1xStream.readResponse(Http1xStream.java:188)
at com.android.okhttp.internal.http.Http1xStream.readResponseHeaders(Http1xStream.java:129)
at com.android.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:750)
at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:622)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:475)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:411)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:248)
at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:211)
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:30)
at com.bumptech.glide.load.data.HttpUrlFetcher.loadDataWithRedirects(HttpUrlFetcher.java:95)
at com.bumptech.glide.load.data.HttpUrlFetcher.loadDataWithRedirects(HttpUrlFetcher.java:122) 
at com.bumptech.glide.load.data.HttpUrlFetcher.loadData(HttpUrlFetcher.java:58) 
at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.loadData(MultiModelLoader.java:100) 
at com.bumptech.glide.load.engine.SourceGenerator.startNextLoad(SourceGenerator.java:95) 
at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:88) 
at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:311) 
at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:277) 
at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:235) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:421) 
at java.lang.Thread.run(Thread.java:923) 
at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultPriorityThreadFactory$1.run(GlideExecutor.java:380) 
Caused by: java.net.SocketTimeoutException:  Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:119)
at java.net.SocketInputStream.read(SocketInputStream.java:176)
at java.net.SocketInputStream.read(SocketInputStream.java:144)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readFromSocket(ConscryptEngineSocket.java:936)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:900)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readUntilDataAvailable(ConscryptEngineSocket.java:815)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.read(ConscryptEngineSocket.java:788)
at com.android.okhttp.okio.Okio$2.read(Okio.java:138)
at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:213)
at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:307) 
at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:301) 
at com.android.okhttp.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:197) 
at com.android.okhttp.internal.http.Http1xStream.readResponse(Http1xStream.java:188) 
at com.android.okhttp.internal.http.Http1xStream.readResponseHeaders(Http1xStream.java:129) 
at com.android.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:750) 
at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:622) 
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:475) 
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:411) 
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:248) 
at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:211) 
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:30) 
at com.bumptech.glide.load.data.HttpUrlFetcher.loadDataWithRedirects(HttpUrlFetcher.java:95) 
at com.bumptech.glide.load.data.HttpUrlFetcher.loadDataWithRedirects(HttpUrlFetcher.java:122) 
at com.bumptech.glide.load.data.HttpUrlFetcher.loadData(HttpUrlFetcher.java:58) 
at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.loadData(MultiModelLoader.java:100) 
at com.bumptech.glide.load.engine.SourceGenerator.startNextLoad(SourceGenerator.java:95) 
at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:88) 
at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:311) 
at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:277) 
at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:235) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:421) 
at java.lang.Thread.run(Thread.java:923) 
at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultPriorityThreadFactory$1.run(GlideExecutor.java:380) 
Я имею в виду код состояния -1? Я использую исключения Http 400–500, но -1?
Я пытался разобраться в ошибке, но для меня это слишком много, у меня не так много опыта в https и тому подобном.Спасибо за любую помощь!

Подробнее здесь: https://stackoverflow.com/questions/791 ... ogle-drive
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»