android / android/games-samples

agdtunnel crashes on Oppo Android 8.1

Open
#97 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
307
Forks
138
Avg merge
8d 11h
Merged PRs (30d)
2

Description

hey,

Looks like agdktunnel is accessing non existant java functions on Oppo Android 8.1:

```
24-07-11 13:13:13.017 3199-9231 Auth com.google.android.gms.persistent W [GaiaIdSync] Empty email or accountId. [CONTEXT service_id=153 ]
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] JNI DETECTED ERROR IN APPLICATION: JNI CallStaticObjectMethodV called with pending exception java.lang.NoSuchMethodError: no static method "Landroid/os/VibrationEffect;.createPredefined(I)Landroid/os/VibrationEffect;"
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] (Throwable with empty stack trace)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534]
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] in call to CallStaticObjectMethodV
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] "Thread-3" prio=10 tid=12 Runnable
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] | group="main" sCount=0 dsCount=0 flags=0 obj=0x18e80000 self=0x72ebe31c00
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] | sysTid=9469 nice=-10 cgrp=default sched=0/0 handle=0x72d534b4f0
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] | state=R schedstat=( 54996358 48000880 159 ) utm=4 stm=1 core=6 HZ=100
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] | stack=0x72d5251000-0x72d5253000 stackSize=1005KB
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] | held mutexes= "mutator lock"(shared held)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #00 pc 00000000003ca7bc /system/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*)+208)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #01 pc 000000000049d098 /system/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream>&, bool, BacktraceMap*, bool) const+348)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #02 pc 00000000002fd578 /system/lib64/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1048)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #03 pc 00000000002fd968 /system/lib64/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)+116)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #04 pc 000000000010e74c /system/lib64/libart.so (art::ScopedCheck::AbortF(char const*, ...)+148)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #05 pc 000000000010e29c /system/lib64/libart.so (art::ScopedCheck::CheckThread(_JNIEnv*)+516)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #06 pc 000000000010c74c /system/lib64/libart.so (art::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::JniValueType*)+644)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #07 pc 0000000000111bc8 /system/lib64/libart.so (art::CheckJNI::CheckCallArgs(art::ScopedObjectAccess&, art::ScopedCheck&, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, art::InvokeType, art::VarArgs const*)+132)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #08 pc 0000000000110a80 /system/lib64/libart.so (art::CheckJNI::CallMethodV(char const*, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, std::__va_list, art::Primitive::Type, art::InvokeType)+664)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #09 pc 0000000000100ae8 /system/lib64/libart.so (art::CheckJNI::CallStaticObjectMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+92)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #10 pc 00000000001c5ab0 /data/app/com.google.sample.agdktunnel-w-oH2ieoY6b5dJeOCKLR1Q==/base.apk (???)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #11 pc 00000000001c5cd8 /data/app/com.google.sample.agdktunnel-w-oH2ieoY6b5dJeOCKLR1Q==/base.apk (???)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #12 pc 00000000001f6b88 /data/app/com.google.sample.agdktunnel-w-oH2ieoY6b5dJeOCKLR1Q==/base.apk (???)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #13 pc 00000000001f3d48 /data/app/com.google.sample.agdktunnel-w-oH2ieoY6b5dJeOCKLR1Q==/base.apk (???)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #14 pc 00000000001c7068 /data/app/com.google.sample.agdktunnel-w-oH2ieoY6b5dJeOCKLR1Q==/base.apk (???)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #15 pc 00000000001feaf8 /data/app/com.google.sample.agdktunnel-w-oH2ieoY6b5dJeOCKLR1Q==/base.apk (???)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #16 pc 0000000000074d78 /system/lib64/libc.so (__pthread_start(void*)+36)
2024-07-11 13:13:13.042 9365-9469 zygote64 com.google.sample.agdktunnel A java_vm_ext.cc:534] native: #17 pc 000000000001fce4 /system/lib64/libc.so (__start_thread+68)
```

[CrashOppoAndroid8.1.txt](https://github.com/user-attachments/files/21100369/CrashOppoAndroid8.1.txt)

Contributor guide

Open the contributing guide

Research direction

Start by examining the agdtunnel code path that calls VibrationEffect.createPredefined(I), then reproduce the crash on Oppo Android 8.1 using the supplied CrashOppoAndroid8.1.txt log as a reference. Done means agdtunnel no longer crashes when this API is unavailable on that device; the issue does not name a source file or test to run.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, cpp
Domain
mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.