VanessaF
VanessaF

Reputation: 793

Rendering error in Android's image view by using custom made png file

I have a very strange error related to custom image Views in Android using self-made png files. This error might be difficult to debug. Still I just wanted to ask you guys here before not using the custom image view.

So I have the following image view

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <corners android:radius="22dp" />
            <solid android:color="#ffffff" />

        </shape>
    </item>
    <item
        android:drawable="@drawable/window_open_no_arrows"
        android:width="45dp"
        android:height="45dp"
        android:gravity="left|center_vertical" />
</layer-list>

Here is the screenshot of it enter image description here

I create an Image View out of it using the following code:

final ImageView flyingButton = new ImageView(getContext());
flyingButton.setImageResource(R.drawable.flying_button_air_1);

and I animate it (so it flys through the screen). Actually the code is quite complicated, so I can't show it to you. But what you need to know is that depending on the drwable specified in this line android:drawable="@drawable/window_open_no_arrows", everything works fine or I get a unspecified error message and the app crashes (here an extract of it):

 A  GL errors! frameworks/base/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp:127
2023-08-21 10:46:59.626 22025-22051 om.example.gam          com.example.game                     A  runtime.cc:655] Runtime aborting...
                                                                                                    runtime.cc:655] Dumping all threads without mutator lock held
                                                                                                    runtime.cc:655] All threads:
                                                                                                    runtime.cc:655] DALVIK THREADS (14):
                                                                                                    runtime.cc:655] "RenderThread" prio=10 tid=18 Runnable
                                                                                                    runtime.cc:655]   | group="" sCount=0 dsCount=0 flags=0 obj=0x132c06d8 self=0xdd591810
                                                                                                    runtime.cc:655]   | sysTid=22051 nice=-10 cgrp=top-app sched=0/0 handle=0xbbdb01e0
                                                                                                    runtime.cc:655]   | state=R schedstat=( 70660625928 3318920954 65423 ) utm=455 stm=6610 core=1 HZ=100
                                                                                                    runtime.cc:655]   | stack=0xbbcb5000-0xbbcb7000 stackSize=1008KB
                                                                                                    runtime.cc:655]   | held mutexes= "abort lock" "mutator lock"(shared held)
                                                                                                    runtime.cc:655]   native: #00 pc 00542d9e  /apex/com.android.art/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+110)
                                                                                                    runtime.cc:655]   native: #01 pc 006a0897  /apex/com.android.art/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bool, BacktraceMap*, bool) const+1015)
                                                                                                    runtime.cc:655]   native: #02 pc 0069a171  /apex/com.android.art/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bool, BacktraceMap*, bool) const+65)
                                                                                                    runtime.cc:655]   native: #03 pc 006c61b4  /apex/com.android.art/lib/libart.so (art::DumpCheckpoint::Run(art::Thread*)+1172)
                                                                                                    runtime.cc:655]   native: #04 pc 006bf266  /apex/com.android.art/lib/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+630)
                                                                                                    runtime.cc:655]   native: #05 pc 006be1ce  /apex/com.android.art/lib/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bool)+2446)
                                                                                                    runtime.cc:655]   native: #06 pc 0065227d  /apex/com.android.art/lib/libart.so (art::AbortState::DumpAllThreads(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, art::Thread*) const+445)
                                                                                                    runtime.cc:655]   native: #07 pc 0063984f  /apex/com.android.art/lib/libart.so (art::Runtime::Abort(char const*)+1967)
                                                                                                    runtime.cc:655]   native: #08 pc 00025a23  /apex/com.android.art/lib/libartbase.so (std::__1::__function::__func<void (*)(char const*), std::__1::allocator<void (*)(char const*)>, void (char const*)>::operator()(char const*&&)+35)
                                                                                                    runtime.cc:655]   native: #09 pc 0001588f  /system/lib/libbase.so (android::base::SetAborter(std::__1::function<void (char const*)>&&)::$_3::__invoke(char const*)+79)
                                                                                                    runtime.cc:655]   native: #10 pc 00006dbd  /system/lib/liblog.so (__android_log_assert+285)
                                                                                                    runtime.cc:655]   native: #11 pc 0024dd11  /system/lib/libhwui.so (android::uirenderer::skiapipeline::SkiaOpenGLPipeline::swapBuffers(android::uirenderer::renderthread::Frame const&, bool, SkRect const&, android::uirenderer::FrameInfo*, bool*)+145)
                                                                                                    runtime.cc:655]   native: #12 pc 00257e78  /system/lib/libhwui.so (android::uirenderer::renderthread::CanvasContext::draw()+1112)
                                                                                                    runtime.cc:655]   native: #13 pc 0025ab5f  /system/lib/libhwui.so (_ZNSt3__110__function6__funcIZN7android10uirenderer12renderthread13DrawFrameTask11postAndWaitEvE3$_0NS_9allocatorIS6_EEFvvEEclEv$c303f2d2360db58ed70a2d0ac7ed911b+767)
                                                                                                    runtime.cc:655]   native: #14 pc 0024542d  /system/lib/libhwui.so (android::uirenderer::WorkQueue::process()+285)
                                                                                                    runtime.cc:655]   native: #15 pc 0026cabf  /system/lib/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+127)
                                                                                                    runtime.cc:655]   native: #16 pc 00015116  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+374)
                                                                                                    runtime.cc:655]   native: #17 pc 000147d9  /system/lib/libutils.so (thread_data_t::trampoline(thread_data_t const*)+457)
                                                                                                    runtime.cc:655]   native: #18 pc 000e6974  /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100)
                                                                                                    runtime.cc:655]   native: #19 pc 00078567  /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71)
                                                                                                    runtime.cc:655]   (no managed stack frames)
                                                                                                    runtime.cc:655] 
                                                                                                    runtime.cc:655] "main" prio=10 tid=1 Native
2023-08-21 10:46:59.626 22025-22051 om.example.gam          com.example.game                     A  runtime.cc:655]   | group="" sCount=1 dsCount=0 flags=1 obj=0x7233bc28 self=0xdd583810
                                                                                                    runtime.cc:655]   | sysTid=22025 nice=-10 cgrp=top-app sched=0/0 handle=0xeb954478
                                                                                                    runtime.cc:655]   | state=S schedstat=( 9562624174 4586979131 37249 ) utm=764 stm=191 core=3 HZ=100
                                                                                                    runtime.cc:655]   | stack=0xff229000-0xff22b000 stackSize=8192KB
                                                                                                    runtime.cc:655]   | held mutexes=
                                                                                                    runtime.cc:655]   native: #00 pc 00000b97  [vdso] (__kernel_vsyscall+7)
                                                                                                    runtime.cc:655]   native: #01 pc 0005ad68  /apex/com.android.runtime/lib/bionic/libc.so (syscall+40)
                                                                                                    runtime.cc:655]   native: #02 pc 0007725e  /apex/com.android.runtime/lib/bionic/libc.so (__futex_wait_ex(void volatile*, bool, int, bool, timespec const*)+142)
                                                                                                    runtime.cc:655]   native: #03 pc 000e5b2e  /apex/com.android.runtime/lib/bionic/libc.so (pthread_cond_wait+62)
                                                                                                    runtime.cc:655]   native: #04 pc 0025a146  /system/lib/libhwui.so (android::uirenderer::renderthread::DrawFrameTask::postAndWait()+182)
                                                                                                    runtime.cc:655]   native: #05 pc 0023922d  /system/lib/libhwui.so (android::android_view_ThreadedRenderer_syncAndDrawFrame(_JNIEnv*, _jobject*, long long, _jlongArray*, int)+109)
                                                                                                    runtime.cc:655]   at android.graphics.HardwareRenderer.nSyncAndDrawFrame(Native method)
                                                                                                    runtime.cc:655]   at android.graphics.HardwareRenderer.syncAndDrawFrame(HardwareRenderer.java:433)
                                                                                                    runtime.cc:655]   at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:658)
                                                                                                    runtime.cc:655]   at android.view.ViewRootImpl.draw(ViewRootImpl.java:4101)
                                                                                                    runtime.cc:655]   at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3828)
                                                                                                    runtime.cc:655]   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3099)
                                                                                                    runtime.cc:655]   at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1952)
                                                                                                    runtime.cc:655]   at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8171)
                                                                                                    runtime.cc:655]   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972)
                                                                                                    runtime.cc:655]   at android.view.Choreographer.doCallbacks(Choreographer.java:796)
                                                                                                    runtime.cc:655]   at android.view.Choreographer.doFrame(Choreographer.java:731)
                                                                                                    runtime.cc:655]   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957)
                                                                                                    runtime.cc:655]   at android.os.Handler.handleCallback(Handler.java:938)
                                                                                                    runtime.cc:655]   at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                    runtime.cc:655]   at android.os.Looper.loop(Looper.java:223)
                                                                                                    runtime.cc:655]   at android.app.ActivityThread.main(ActivityThread.java:7656)
                                                                                                    runtime.cc:655]   at java.lang.reflect.Method.invoke(Native method)
                                                                                                    runtime.cc:655]   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
                                                                                                    runtime.cc:655]   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
                                                                                                    runtime.cc:655] 
                                                                                                    runtime.cc:655] "Signal Catcher" prio=10 tid=6 WaitingInMainSignalCatcherLoop
                                                                                                    runtime.cc:655]   | group="" sCount=1 dsCount=0 flags=1 obj=0x132c0228 self=0xdd58a810
                                                                                                    runtime.cc:655]   | sysTid=22035 nice=-20 cgrp=top-app sched=0/0 handle=0xd27e21e0
                                                                                                    runtime.cc:655]   | state=S schedstat=( 324261 0 1 ) utm=0 stm=0 core=3 HZ=100
                                                                                                    runtime.cc:655]   | stack=0xd26e7000-0xd26e9000 stackSize=1008KB
                                                                                                    runtime.cc:655]   | held mutexes=
                                                                                                    runtime.cc:655]   native: #00 pc 00000b99  [vdso] (__kernel_vsyscall+9)
                                                                                                    runtime.cc:655]   native: #01 pc 000ce821  /apex/com.android.runtime/lib/bionic/libc.so (__rt_sigtimedwait+33)
                                                                                                    runtime.cc:655]   native: #02 pc 00086c55  /apex/com.android.runtime/lib/bionic/libc.so (sigwait+69)
                                                                                                    runtime.cc:655]   native: #03 pc 00665f1d  /apex/com.android.art/lib/libart.so (art::SignalCatcher::WaitForSignal(art::Thread*, art::SignalSet&)+461)
                                                                                                    runtime.cc:655]   native: #04 pc 006648ff  /apex/com.android.art/lib/libart.so (art::SignalCatcher::Run(void*)+479)
                                                                                                    runtime.cc:655]   native: #05 pc 000e6974  /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100)
                                                                                                    runtime.cc:655]   native: #06 pc 00078567  /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71)
                                                                                                    runtime.cc:655]   (no managed stack frames)
                                                                                                    runtime.cc:655] 
2023-08-21 10:46:59.626 22025-22051 om.example.gam          com.example.game                     A  runtime.cc:655] "perfetto_hprof_listener" prio=10 tid=7 Native (still starting up)
                                                                                                    runtime.cc:655]   | group="" sCount=1 dsCount=0 flags=1 obj=0x0 self=0xdd586210
                                                                                                    runtime.cc:655]   | sysTid=22036 nice=-20 cgrp=top-app sched=0/0 handle=0xd26e11e0
                                                                                                    runtime.cc:655]   | state=S schedstat=( 453304 0 8 ) utm=0 stm=0 core=0 HZ=100
                                                                                                    runtime.cc:655]   | stack=0xd25e6000-0xd25e8000 stackSize=1008KB
                                                                                                    runtime.cc:655]   | held mutexes=
                                                                                                    runtime.cc:655]   native: #00 pc 00000b97  [vdso] (__kernel_vsyscall+7)
                                                                                                    runtime.cc:655]   native: #01 pc 000ccf9c  /apex/com.android.runtime/lib/bionic/libc.so (read+28)
                                                                                                    runtime.cc:655]   native: #02 pc 0001aca2  /apex/com.android.art/lib/libperfetto_hprof.so (void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, ArtPlugin_Initialize::$_29> >(void*)+306)
                                                                                                    runtime.cc:655]   native: #03 pc 000e6974  /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100)
                                                                                                    runtime.cc:655]   native: #04 pc 00078567  /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71)
                                                                                                    runtime.cc:655]   (no managed stack frames)
                                                                                                    runtime.cc:655] 
                                                                                                    runtime.cc:655] "ADB-JDWP Connection Control Thread" prio=10 tid=8 WaitingInMainDebuggerLoop
                                                                                                    runtime.cc:655]   | group="" sCount=1 dsCount=0 flags=1 obj=0x132c02a0 self=0xdd588c10
                                                                                                    runtime.cc:655]   | sysTid=22037 nice=-20 cgrp=top-app sched=0/0 handle=0xd25e01e0
                                                                                                    runtime.cc:655]   | state=S schedstat=( 1278972 202074 9 ) utm=0 stm=0 core=1 HZ=100
                                                                                                    runtime.cc:655]   | stack=0xd24e5000-0xd24e7000 stackSize=1008KB
                                                                                                    runtime.cc:655]   | held mutexes=
                                                                                                    runtime.cc:655]   native: #00 pc 00000b99  [vdso] (__kernel_vsyscall+9)
                                                                                                    runtime.cc:655]   native: #01 pc 000cf496  /apex/com.android.runtime/lib/bionic/libc.so (__ppoll+38)
                                                                                                    runtime.cc:655]   native: #02 pc 00083979  /apex/com.android.runtime/lib/bionic/libc.so (poll+105)
                                                                                                    runtime.cc:655]   native: #03 pc 0000a493  /apex/com.android.art/lib/libadbconnection.so (adbconnection::AdbConnectionState::RunPollLoop(art::Thread*)+1171)
                                                                                                    runtime.cc:655]   native: #04 pc 000086d2  /apex/com.android.art/lib/libadbconnection.so (adbconnection::CallbackFunction(void*)+1666)
                                                                                                    runtime.cc:655]   native: #05 pc 000e6974  /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100)
                                                                                                    runtime.cc:655]   native: #06 pc 00078567  /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71)
                                                                                                    runtime.cc:655]   (no managed stack frames)
                                                                                                    runtime.cc:655] 
                                                                                                    runtime.cc:655] "HeapTaskDaemon" prio=5 tid=9 WaitingForTaskProcessor
                                                                                                    runtime.cc:655]   | group="" sCount=1 dsCount=0 flags=1 obj=0x132c0750 self=0xdd584610
                                                                                                    runtime.cc:655]   | sysTid=22039 nice=4 cgrp=top-app sched=0/0 handle=0xbd6701e0
                                                                                                    runtime.cc:655]   | state=S schedstat=( 1740376612 449504217 1458 ) utm=116 stm=57 core=0 HZ=100
                                                                                                    runtime.cc:655]   | stack=0xbd56d000-0xbd56f000 stackSize=1040KB
                                                                                                    runtime.cc:655]   | held mutexes=
                                                                                                    runtime.cc:655]   native: #00 pc 00000b97  [vdso] (__kernel_vsyscall+7)
                                                                                                    runtime.cc:655]   native: #01 pc 0005ad68  /apex/com.android.runtime/lib/bionic/libc.so (syscall+40)
                                                                                                    runtime.cc:655]   native: #02 pc 001d82ec  /apex/com.android.art/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+108)
                                                                                                    runtime.cc:655]   native: #03 pc 001d8273  /apex/com.android.art/lib/libart.so (art::ConditionVariable::Wait(art::Thread*)+35)
                                                                                                    runtime.cc:655]   native: #04 pc 0034a036  /apex/com.android.art/lib/libart.so (art::gc::TaskProcessor::GetTask(art::Thread*)+630)
                                                                                                    runtime.cc:655]   native: #05 pc 0034aa64  /apex/com.android.art/lib/libart.so (art::gc::TaskProcessor::RunAllTasks(art::Thread*)+84)
                                                                                                    runtime.cc:655]   native: #06 pc 005591f5  /apex/com.android.art/lib/libart.so (art::VMRuntime_runHeapTasks(_JNIEnv*, _jobject*)+53)
                                                                                                    runtime.cc:655]   at dalvik.system.VMRuntime.runHeapTasks(Native method)
                                                                                                    runtime.cc:655]   at java.lang.Daemons$HeapTaskDaemon.runInternal(Daemons.java:531)
                                                                                                    runtime.cc:655]   at java.lang.Daemons$Daemon.run(Daemons.java:139)
                                                                                                    runtime.cc:655]   at java.lang.Thread.run(Thread.java:923)
2023-08-21 10:46:59.626 22025-22051 om.example.gam          com.example.game                     A  runtime.cc:655] 
                                                                                                    runtime.cc:655] "FinalizerDaemon" prio=5 tid=10 Waiting
                                                                                                    runtime.cc:655]   | group="" sCount=1 dsCount=0 flags=1 obj=0x132c0318 self=0xdd587010
                                                                                                    runtime.cc:655]   | sysTid=22041 nice=4 cgrp=top-app sched=0/0 handle=0xbd45e1e0
                                                                                                    runtime.cc:655]   | state=S schedstat=( 27091640 2409459 226 ) utm=1 stm=1 core=0 HZ=100
                                                                                                    
                                                                                                    

What makes this problem realy strange is that when using another png file as the drawable, everything works fine. For example when using this png file Thermometer everything works without any problems or if I just use an Android internal image or vector asset. So the code itself is correct. But when using the window png fileWindow I get this strange error. I created both PNG files by using the very same program (Inkscape). They are both orignially vector graphics and I converted them into png by using Inkscape. So my question is does anyone have a clue why Android has problems with the self-made window image but not with the self-made thermometer image?

Upvotes: 1

Views: 277

Answers (0)

Related Questions