У меня есть код с использованием нового класса Palette
, и я получаю эти отчеты о сбоях на Crashlytics, говоря, что width and height must be > 0
. Что странно, что это, как я называю код палитры:android.support.v7.graphics.Palette width и height должны быть> 0
if(bitmap == null || bitmap.getHeight() <= 0 || bitmap.getWidth() <= 0){
//do something
}else{
Palette.Builder(bitmap).generate(new Palette.PaletteAsyncListener() {
.....
}
Так что я просто не знаю, как это возможно, что растровое все вдруг не имеет правильную ширину или высоту. Я не знаю, в какой части моего кода возникает исключение, потому что отчет включает только материал внутри класса палитры.
Вот исключение:
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:300)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.IllegalArgumentException: width and height must be > 0
at android.graphics.Bitmap.createBitmap(Bitmap.java:815)
at android.graphics.Bitmap.createBitmap(Bitmap.java:794)
at android.graphics.Bitmap.createBitmap(Bitmap.java:725)
at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:601)
at android.support.v7.graphics.Palette.scaleBitmapDown(Palette.java:282)
at android.support.v7.graphics.Palette.access$100(Palette.java:67)
at android.support.v7.graphics.Palette$Builder.generate(Palette.java:557)
at android.support.v7.graphics.Palette$Builder$1.doInBackground(Palette.java:623)
at android.support.v7.graphics.Palette$Builder$1.doInBackground(Palette.java:620)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Я использую класс Palette от com.android.support:palette-v7:23+
Любые идеи о том, что может быть не так?
являетесь вы действительно уверен, что растровое изображение что-то или даже показывает? палитра должна проанализировать изображение и несколько минут спустя, вы получите цвет. –
Ну, я только получаю ошибки над Crashlytics, никогда со мной не происходит. Но я проверяю нуль и размер перед вызовом кода палитры. – casolorz
приложение никогда не падает? вы могли бы воссоздать проблему? если нет ... возможно, у некоторых пользователей есть смартфон с низким уровнем конца, и задача заняла слишком много времени, а палитра находила нулевые значения (сбой по палитре и не над растровым изображением) –