How to implement GIF insertion in Unity? “XYZ App doesn’t support image insertion here”

I’m making an Android App with Unity, which has a chat service in it.

And I would like to handle sending images or GIFs via Gboard.

Currently when the user selects a TextField, his keyboard comes up, which is let’s say GBoard.

And now when I click on a GIF or a Sticker, it says

XYZ App doesn’t support image insertion here

So how could I implement it?

Or more precisely, how can I define what method will be be called in my application when the user tries to send a GIF?

Because my first thought to implement it, is like it’s done in all other apps:

  • every GIF would be in a separate message, and when the user clicks on a GIF it instantly sends a special GIF message, which will be rendered for example as an animated texture.

But how could I subscribe to this event in the first place?

Thanks in advance!

Is there a spell that allows you to divine what happened “here”?

My Queen walks into a room full of bodies. One survivor, a small noble she’s never met before, tells her a story about what happened to the prisoners she expected to find here. Fortunately, she’s a skilled Diviner. Is there a spell other than Speak with Dead she could use to figure out what happened in this room in the last, say, 10 minutes?

If not, the correct answer is obviously “no”, but if you happen to be aware of a feature – for player characters or monsters – that does something comparable, please let me know.


In this case I’m the DM and the Queen is a DMPC. I am aware that I could easily make something up myself, so only answers on official, published content please.

Instagram Phishing: “Look – I Made This Just For You – Click Here”

I manage a somewhat popular Instagram page with ~5000 followers.

Recently I’ve been getting a ton of the exact same direct message from various followers:

Look

I Made This Just For You – Click Here

This took me about 2 hours to make. They came out really nice. I hope you love them.

I just made this for you, I hope u like it.

instagram phishing

They’re all people who have legitimately messaged us in the past. In some cases the usernames have been recently changed and/or the account’s pictures have been deleted.


The link contained in the message is:

https://instagram.com-accounts-authentication-secure-id-46884434223.me/?look=ACCOUNT_NAME_HERE

The url also has a &ure= parameter that maps to a instagram.ftpe7-3.fna.fbcdn.net resource. This seems to be how they bring up the account’s profile page on the fake login screen.


How are these Instagram accounts being hacked?

What is the goal in sending our account these direct messages? What happens if you are unfortunate enough to click the link?

We’re being careful with DM links and two-factor authentication is enabled for this account.

How can we prevent these spam messages?

Is there anything we can do to safeguard or report our hacked followers?

Hello Every One, Can a Coroutine blocks a Ui-tread and main thread? Here is my anr reports…:)

"main" prio=5 tid=1 Native   | group="main" sCount=1 dsCount=0 obj=0x76124000 self=0xb8c90630   | sysTid=14257 nice=-6 cgrp=apps sched=0/0 handle=0xb6f3cec8   | state=S schedstat=( 17722980711 3926538577 33817 ) utm=1401 stm=371 core=0 HZ=100   | stack=0xbe193000-0xbe195000 stackSize=8MB   | held mutexes=   #00  pc 0000000000039cc0  /system/lib/libc.so (__ioctl+8)   #01  pc 000000000003f3d9  /system/lib/libc.so (ioctl+14)   #02  pc 000000000001cbbb  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+138)   #03  pc 000000000001d1d7  /system/lib/libbinder.so (android::IPCThreadState::waitForResponse(android::Parcel*, int*)+42)   #04  pc 000000000001d379  /system/lib/libbinder.so (android::IPCThreadState::transact(int, unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+124)   #05  pc 000000000001860f  /system/lib/libbinder.so (android::BpBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+30)   #06  pc 00000000000875f3  /system/lib/libandroid_runtime.so (???)   #07  pc 0000000000a88b99  /system/framework/arm/boot.oat (Java_android_os_BinderProxy_transactNative__ILandroid_os_Parcel_2Landroid_os_Parcel_2I+144)   at android.os.BinderProxy.transactNative (Native method)   at android.os.BinderProxy.transact (Binder.java:496)   at aq.a (com.google.android.gms.dynamite_measurementdynamite@200414028@20.04.14 (020304-0):38) - locked <@addr=0x12f9a200> (a java.lang.Object)   at an.a (com.google.android.gms.dynamite_measurementdynamite@200414028@20.04.14 (020304-0):3)   at ap.a (com.google.android.gms.dynamite_measurementdynamite@200414028@20.04.14 (020304-0):3)   at ah.c (com.google.android.gms.dynamite_measurementdynamite@200414028@20.04.14 (020304-0):8)   at ak.handleMessage (com.google.android.gms.dynamite_measurementdynamite@200414028@20.04.14 (020304-0):29)   at android.os.Handler.dispatchMessage (Handler.java:102)   at android.os.Looper.loop (Looper.java:135)   at android.app.ActivityThread.main (ActivityThread.java:5753)   at java.lang.reflect.Method.invoke! (Native method)   at java.lang.reflect.Method.invoke (Method.java:372)   at com.android.internal.os.ZygoteInit$  MethodAndArgsCaller.run (ZygoteInit.java:1405)   at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1200)     "main" prio=5 tid=1 Native   | group="main" sCount=1 dsCount=0 obj=0x75271f70 self=0xa8005400   | sysTid=23701 nice=-4 cgrp=default sched=0/0 handle=0xaacb9534   | state=S schedstat=( 0 0 0 ) utm=667 stm=316 core=0 HZ=100   | stack=0xbe1ff000-0xbe201000 stackSize=8MB   | held mutexes=   #00  pc 00000000000484d8  /system/lib/libc.so (__epoll_pwait+20)   #01  pc 000000000001a19d  /system/lib/libc.so (epoll_pwait+60)   #02  pc 000000000001a1cd  /system/lib/libc.so (epoll_wait+12)   #03  pc 0000000000011c87  /system/lib/libutils.so (android::Looper::pollInner(int)+118)   #04  pc 0000000000011b83  /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+26)   #05  pc 000000000008f169  /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, _jobject*, int)+22)   #06  pc 000000000061c5bd  /system/framework/arm/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+96)   at android.os.MessageQueue.nativePollOnce (Native method)   at android.os.MessageQueue.next (MessageQueue.java:323)   at android.os.Looper.loop (Looper.java:136)   at android.app.ActivityThread.main (ActivityThread.java:6146)   at java.lang.reflect.Method.invoke! (Native method)   at com.android.internal.os.ZygoteInit$  MethodAndArgsCaller.run (ZygoteInit.java:865)   at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:755)      "main" prio=5 tid=1 Native   | group="main" sCount=1 dsCount=0 obj=0x75781708 self=0xb0085400   | sysTid=16356 nice=-4 cgrp=default sched=0/0 handle=0xb2d18534   | state=S schedstat=( 0 0 0 ) utm=81 stm=59 core=0 HZ=100   | stack=0xbe670000-0xbe672000 stackSize=8MB   | held mutexes=   #00  pc 00000000000173f4  /system/lib/libc.so (syscall+28)   #01  pc 00000000000b713d  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+92)   #02  pc 00000000003f23ab  /system/lib/libart.so (art::GoToRunnable(art::Thread*)+230)   #03  pc 00000000003f229b  /system/lib/libart.so (art::JniMethodEnd(unsigned int, art::Thread*)+8)   #04  pc 0000000000621b8f  /system/framework/arm/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+106)   at android.os.MessageQueue.nativePollOnce (Native method)   at android.os.MessageQueue.next (MessageQueue.java:323)   at android.os.Looper.loop (Looper.java:136)   at android.app.ActivityThread.main (ActivityThread.java:6216)   at java.lang.reflect.Method.invoke! (Native method)   at com.android.internal.os.ZygoteInit$  MethodAndArgsCaller.run (ZygoteInit.java:887)   at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:777)       "main" prio=5 tid=1 Native   | group="main" sCount=1 dsCount=0 flags=1 obj=0x72ff3770 self=0xa803f000   | sysTid=14677 nice=-10 cgrp=default sched=0/0 handle=0xaca064a4   | state=S schedstat=( 2405664844 1074645320 2868 ) utm=79 stm=160 core=1 HZ=100   | stack=0xbe153000-0xbe155000 stackSize=8MB   | held mutexes=   #00  pc 0000000000018cc4  /system/lib/libc.so (syscall+28)   #01  pc 00000000000b71cd  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+80)   #02  pc 00000000003e0911  /system/lib/libart.so (art::GoToRunnable(art::Thread*)+300)   #03  pc 00000000003e07b5  /system/lib/libart.so (art::JniMethodEnd(unsigned int, art::Thread*)+8)   #04  pc 0000000000772161  /system/framework/arm/boot-framework.oat (Java_android_os_BinderProxy_transactNative__ILandroid_os_Parcel_2Landroid_os_Parcel_2I+144)   at android.os.BinderProxy.transactNative (Native method)   at android.os.BinderProxy.transact (Binder.java:776)   at android.app.IActivityManager$  Stub$  Proxy.refContentProvider (IActivityManager.java:4841)   at android.app.ActivityThread.incProviderRefLocked (ActivityThread.java:6225)   at android.app.ActivityThread.acquireExistingProvider (ActivityThread.java:6288) - locked <0x00829d09> (a android.util.ArrayMap)   at android.app.ActivityThread.acquireProvider (ActivityThread.java:6166)   at android.app.ContextImpl$  ApplicationContentResolver.acquireProvider (ContextImpl.java:2526)   at android.content.ContentResolver.acquireProvider (ContentResolver.java:1733)   at android.content.ContentResolver.query (ContentResolver.java:779)   at android.content.ContentResolver.query (ContentResolver.java:704)   at android.content.ContentResolver.query (ContentResolver.java:662)   at com.google.android.gms.dynamite.DynamiteModule.zzc (unavailable:122)   at com.google.android.gms.dynamite.DynamiteModule.zza (unavailable:96)   at com.google.android.gms.dynamite.DynamiteModule.getRemoteVersion (unavailable:149)   at com.google.android.gms.internal.ads.zzus.zzd   at com.google.android.gms.internal.ads.zzxd.zza   at com.google.android.gms.ads.InterstitialAd.loadAd   at com.google.unity.ads.Interstitial$  2.run (Interstitial.java:152)   at android.os.Handler.handleCallback (Handler.java:795)   at android.os.Handler.dispatchMessage (Handler.java:99)   at android.os.Looper.loop (Looper.java:166)   at android.app.ActivityThread.main (ActivityThread.java:6861)   at java.lang.reflect.Method.invoke (Native method)   at com.android.internal.os.RuntimeInit$  MethodAndArgsCaller.run (RuntimeInit.java:450)   at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:936)        "main" prio=5 tid=1 Waiting   | group="main" sCount=1 dsCount=0 obj=0x85921000 self=0xb4827800   | sysTid=32088 nice=0 cgrp=default sched=0/0 handle=0xb6f36bec   | state=S schedstat=( 0 0 0 ) utm=287 stm=134 core=0 HZ=100   | stack=0xbe303000-0xbe305000 stackSize=8MB   | held mutexes=   at java.lang.Object.wait! (Native method) - waiting on <0x2e0733ff> (a java.lang.Object)   at java.lang.Thread.parkFor (Thread.java:1220) - locked <0x2e0733ff> (a java.lang.Object)   at sun.misc.Unsafe.park (Unsafe.java:299)   at java.util.concurrent.locks.LockSupport.park (LockSupport.java:157)   at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt (AbstractQueuedSynchronizer.java:813)   at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly (AbstractQueuedSynchronizer.java:973)   at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly (AbstractQueuedSynchronizer.java:1281)   at java.util.concurrent.CountDownLatch.await (CountDownLatch.java:202)   at android.app.SharedPreferencesImpl$  EditorImpl$  1.run (SharedPreferencesImpl.java:363)   at android.app.QueuedWork.waitToFinish (QueuedWork.java:88)   at android.app.ActivityThread.handleStopActivity (ActivityThread.java:3866)   at android.app.ActivityThread.access$  1200 (ActivityThread.java:177)   at android.app.ActivityThread$  H.handleMessage (ActivityThread.java:1454)   at android.os.Handler.dispatchMessage (Handler.java:102)   at android.os.Looper.loop (Looper.java:135)   at android.app.ActivityThread.main (ActivityThread.java:5910)   at java.lang.reflect.Method.invoke! (Native method)   at java.lang.reflect.Method.invoke (Method.java:372)   at com.android.internal.os.ZygoteInit$  MethodAndArgsCaller.run (ZygoteInit.java:1405)   at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1200)       "main" prio=5 tid=1 Native   | group="main" sCount=1 dsCount=0 flags=1 obj=0x741d4730 self=0x6f354c2a00   | sysTid=9741 nice=-10 cgrp=default sched=0/0 handle=0x6fba6d99a8   | state=S schedstat=( 1881119592 824547978 3737 ) utm=137 stm=51 core=0 HZ=100   | stack=0x7fe16a2000-0x7fe16a4000 stackSize=8MB   | held mutexes=   #00  pc 000000000001e4ac  /system/lib64/libc.so (syscall+28)   #01  pc 00000000000e7620  /system/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+152)   #02  pc 0000000000346158  /system/lib64/libart.so (art::JNI::CallObjectMethod(_JNIEnv*, _jobject*, _jmethodID*, ...)+552)   #03  pc 00000000000eede0  /system/lib64/libandroid_runtime.so (android::NativeDisplayEventReceiver::dispatchVsync(long, int, unsigned int)+48)   #04  pc 0000000000048514  /system/lib64/libandroidfw.so (android::DisplayEventDispatcher::handleEvent(int, int, void*)+164)   #05  pc 0000000000016260  /system/lib64/libutils.so (android::Looper::pollInner(int)+816)   #06  pc 0000000000015ea0  /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+108)   #07  pc 000000000011b610  /system/lib64/libandroid_runtime.so (???)   #08  pc 00000000001f6aac  /system/framework/arm64/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+140)   at android.os.MessageQueue.nativePollOnce (Native method)   at android.os.MessageQueue.next (MessageQueue.java:325)   at android.os.Looper.loop (Looper.java:170)   at android.app.ActivityThread.main (ActivityThread.java:7055)   at java.lang.reflect.Method.invoke (Native method)   at com.android.internal.os.RuntimeInit$  MethodAndArgsCaller.run (RuntimeInit.java:523)   at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:836)         "main" prio=5 tid=1 Native   | group="main" sCount=1 dsCount=0 flags=1 obj=0x72756c68 self=0x750cc5fe00   | sysTid=7355 nice=-10 cgrp=default sched=0/0 handle=0x75929b69a8   | state=S schedstat=( 1434359968 1175390232 4126 ) utm=73 stm=70 core=0 HZ=100   | stack=0x7fedfcc000-0x7fedfce000 stackSize=8MB   | held mutexes=   #00  pc 000000000007a1c0  /system/lib64/libc.so (__epoll_pwait+8)   #01  pc 00000000000201d8  /system/lib64/libc.so (epoll_pwait+48)   #02  pc 0000000000015f9c  /system/lib64/libutils.so (android::Looper::pollInner(int)+148)   #03  pc 0000000000015e78  /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+108)   #04  pc 0000000000117434  /system/lib64/libandroid_runtime.so (???)   #05  pc 00000000001e7e6c  /system/framework/arm64/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+140)   at android.os.MessageQueue.nativePollOnce (Native method)   at android.os.MessageQueue.next (MessageQueue.java:329)   at android.os.Looper.loop (Looper.java:150)   at android.app.ActivityThread.main (ActivityThread.java:6702)   at java.lang.reflect.Method.invoke (Native method)   at com.android.internal.os.RuntimeInit$  MethodAndArgsCaller.run (RuntimeInit.java:549)   at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:826)         "main" prio=5 tid=1 Native   | group="main" sCount=1 dsCount=0 flags=1 obj=0xec01358 self=0xa79d0000   | sysTid=21324 nice=-20 cgrp=default sched=1073741825/1 handle=0xab8514a4   | state=S schedstat=( 12419814912 272368784 4478 ) utm=1186 stm=55 core=0 HZ=100   | stack=0xbe7fe000-0xbe800000 stackSize=8MB   | held mutexes=   #00  pc 00000000000486cc  /system/lib/libc.so (__ioctl+8)   #01  pc 000000000001d09f  /system/lib/libc.so (ioctl+38)   #02  pc 000000000004267f  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+170)   #03  pc 0000000000043039  /system/lib/libbinder.so (android::IPCThreadState::waitForResponse(android::Parcel*, int*)+236)   #04  pc 000000000003d535  /system/lib/libbinder.so (android::BpBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+36)   #05  pc 00000000000bc995  /system/lib/libandroid_runtime.so (???)   #06  pc 0000000000410079  /system/lib/libart.so (art_quick_generic_jni_trampoline+40)   #07  pc 000000000040bb75  /system/lib/libart.so (art_quick_invoke_stub_internal+68)   #08  pc 0000000000410ce7  /system/lib/libart.so (art_quick_invoke_stub+230)   #09  pc 00000000000b0ab7  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+138)   #10  pc 0000000000205e79  /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+220)   #11  pc 0000000000201395  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+588)   #12  pc 00000000003f5d3b  /system/lib/libart.so (MterpInvokeVirtual+482)   #13  pc 00000000003fdf94  /system/lib/libart.so (ExecuteMterpImpl+14228)   #14  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)   #15  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)   #16  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)   #17  pc 00000000003f691b  /system/lib/libart.so (MterpInvokeInterface+1078)   #18  pc 00000000003fe194  /system/lib/libart.so (ExecuteMterpImpl+14740)   #19  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)   #20  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)   #21  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)   #22  pc 00000000003f691b  /system/lib/libart.so (MterpInvokeInterface+1078)   #23  pc 00000000003fe194  /system/lib/libart.so (ExecuteMterpImpl+14740)   #24  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)   #25  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)   #26  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)   #27  pc 00000000003f5d3b  /system/lib/libart.so (MterpInvokeVirtual+482)   #28  pc 00000000003fdf94  /system/lib/libart.so (ExecuteMterpImpl+14228)   #29  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)   #30  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)   #31  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)   #32  pc 00000000003f5d3b  /system/lib/libart.so (MterpInvokeVirtual+482)   #33  pc 00000000003fdf94  /system/lib/libart.so (ExecuteMterpImpl+14228)   #34  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)   #35  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)   #36  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)   #37  pc 00000000003f6d3d  /system/lib/libart.so (MterpInvokeStatic+184)   #38  pc 00000000003fe114  /system/lib/libart.so (ExecuteMterpImpl+14612)   #39  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)   #40  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)   #41  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)   #42  pc 00000000003f691b  /system/lib/libart.so (MterpInvokeInterface+1078)   #43  pc 00000000003fe194  /system/lib/libart.so (ExecuteMterpImpl+14740)   #44  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)   #45  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)   #46  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)   #47  pc 00000000003f6271  /system/lib/libart.so (MterpInvokeSuper+1148)   #48  pc 00000000003fe014  /system/lib/libart.so (ExecuteMterpImpl+14356)   #49  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)   #50  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)   #51  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)   #52  pc 00000000003f5d3b  /system/lib/libart.so (MterpInvokeVirtual+482)   #53  pc 00000000003fdf94  /system/lib/libart.so (ExecuteMterpImpl+14228)   #54  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)   #55  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)   #56  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)   #57  pc 00000000003f5d3b  /system/lib/libart.so (MterpInvokeVirtual+482)   #58  pc 00000000003fdf94  /system/lib/libart.so (ExecuteMterpImpl+14228)   #59  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)   #60  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)   #61  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)   #62  pc 00000000003f6d3d  /system/lib/libart.so (MterpInvokeStatic+184)   #63  pc 00000000003fe114  /system/lib/libart.so (ExecuteMterpImpl+14612)   at android.os.BinderProxy.transactNative (Native method)   at android.os.BinderProxy.transact (Binder.java:792)   at android.app.IActivityManager$  Stub$  Proxy.unbindService (IActivityManager.java:5007)   at android.app.ContextImpl.unbindService (ContextImpl.java:1641)   at android.content.ContextWrapper.unbindService (ContextWrapper.java:703)   at mc.a (com.google.android.gms.policy_ads_fdr_dynamite@21207000@21207000.283464268.283464268:3)   at ld.handleMessage (com.google.android.gms.policy_ads_fdr_dynamite@21207000@21207000.283464268.283464268:10) - locked <0x01ea765f> (a java.util.HashMap)   at android.os.Handler.dispatchMessage (Handler.java:102)   at oz.a (com.google.android.gms.policy_ads_fdr_dynamite@21207000@21207000.283464268.283464268)   at oz.dispatchMessage (com.google.android.gms.policy_ads_fdr_dynamite@21207000@21207000.283464268.283464268)   at android.os.Looper.loop (Looper.java:164)   at android.app.ActivityThread.main (ActivityThread.java:6747)   at java.lang.reflect.Method.invoke (Native method)   at com.android.internal.os.RuntimeInit$  MethodAndArgsCaller.run (RuntimeInit.java:449)   at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807) 

Where do I go from here with my multi-class build? (Cleric L3 DoL; Rogue L1 Ass’n; Druid L2 CoShep’d)

I just need to pick your brains please. Our GM is allowing us to multi-class and use feats. I am the main healer and the only one with darkvision. I’m a Hill Dwarf, with Urchin background. Main stats Wis/Dex/Con (ok Cha but dire Int and Str).

Currently: Cleric – Domain of Life (3 levels) Rogue – Assassin (1 level; with expertise in stealth and perception) Druid – Circle of the Shepherd (2 levels)

I have chosen my classes and sub-classes but:

Where do I go from here – what order should I be leveling up in the classes from now on?

I want my main role to be support/heal the party, but also want to be able to be versatile and sneak places.

Thanks, ET (char: Menhira)