Defold native extension which provides access to Google Play Game Services functionality on Android devices.
Manual, API and setup instructions is available on the official Defold site.
Defold native extension for Google Play Game Services
Home Page: https://www.defold.com/extension-gpgs/
License: MIT License
Defold native extension which provides access to Google Play Game Services functionality on Android devices.
Manual, API and setup instructions is available on the official Defold site.
When i try use gpgs.snapshot_commit_and_close(), the just crashs.
Galaxy A01 Core, Android 10
Defold version: 1.2.183
GPGS 2.3.0
# 1 pc 0x362b2 ...droid.runtime/lib/bionic/libc.so abort+161
# 2 pc 0x2a7809 ...om.android.runtime/lib/libart.so _ZN3art7Runtime5AbortEPKc+1676
# 3 pc 0x255f /system/lib/libbase.so _ZN7android4base10LogMessageD2Ev+406
# 4 pc 0x1b8a27 ...om.android.runtime/lib/libart.so _ZN3art9JavaVMExt8JniAbortEPKcS2_+1194
# 5 pc 0x1b8bc9 ...om.android.runtime/lib/libart.so _ZN3art9JavaVMExt9JniAbortFEPKcS2_z+64
# 6 pc 0x2dcc8b ...om.android.runtime/lib/libart.so _ZNK3art6Thread13DecodeJObjectEP8_jobject+486
# 7 pc 0x1adae1 ...om.android.runtime/lib/libart.so _ZN3art12_GLOBAL__N_111ScopedCheck13CheckInstanceERNS_18ScopedObjectAccessENS1_12InstanceKindEP8_jobjectb+80
# 8 pc 0x1ad009 ...om.android.runtime/lib/libart.so _ZN3art12_GLOBAL__N_111ScopedCheck22CheckPossibleHeapValueERNS_18ScopedObjectAccessEcNS0_12JniValueTypeE+424
# 9 pc 0x1ad15b ...om.android.runtime/lib/libart.so _ZN3art12_GLOBAL__N_111ScopedCheck22CheckPossibleHeapValueERNS_18ScopedObjectAccessEcNS0_12JniValueTypeE+762
#10 pc 0x1ac853 ...om.android.runtime/lib/libart.so _ZN3art12_GLOBAL__N_111ScopedCheck5CheckERNS_18ScopedObjectAccessEbPKcPNS0_12JniValueTypeE+634
#11 pc 0x1b0741 ...om.android.runtime/lib/libart.so _ZN3art12_GLOBAL__N_18CheckJNI13CheckCallArgsERNS_18ScopedObjectAccessERNS0_11ScopedCheckEP7_JNIEnvP8_jobjectP7_jclassP10_jmethodIDNS_10InvokeTypeEPKNS0_7VarArgsE+100
#12 pc 0x1afabb ...om.android.runtime/lib/libart.so _ZN3art12_GLOBAL__N_18CheckJNI11CallMethodVEPKcP7_JNIEnvP8_jobjectP7_jclassP10_jmethodIDSt9__va_listNS_9Primitive4TypeENS_10InvokeTypeE+542
#13 pc 0x1a1c11 ...om.android.runtime/lib/libart.so _ZN3art12_GLOBAL__N_18CheckJNI15CallVoidMethodVEP7_JNIEnvP8_jobjectP10_jmethodIDSt9__va_list+44
#14 pc 0x2e498 ...sKw==/lib/arm/libCircleWiggle.so _ZN7_JNIEnv14CallVoidMethodEP8_jobjectP10_jmethodIDz+32
#15 pc 0x2cf3c ...sKw==/lib/arm/libCircleWiggle.so _ZL31GpgsDisk_SnapshotCommitAndCloseP9lua_State+756
I called gpgs.achievement_set
And I get crash
2021-05-11 09:39:18.434 16495-16515/? E/defold: ERROR:CRASH: CALL STACK:
# 0 pc 0x199d4 /system/lib/libc.so <unknown>+0
# 1 pc 0x1ccc2 /system/lib/libc.so abort+53
# 2 pc 0x3428db /system/lib/libart.so _ZN3art7Runtime5AbortEPKc+910
# 3 pc 0x71b3 /system/lib/libbase.so _ZN7android4base10LogMessageD2Ev+494
# 4 pc 0x226be7 /system/lib/libart.so _ZN3art9JavaVMExt8JniAbortEPKcS2_+1214
# 5 pc 0x226db3 /system/lib/libart.so _ZN3art9JavaVMExt9JniAbortFEPKcS2_z+66
# 6 pc 0x368353 /system/lib/libart.so _ZNK3art6Thread13DecodeJObjectEP8_jobject+510
# 7 pc 0xb7d05 /system/lib/libart.so _ZN3art12_GLOBAL__N_111ScopedCheck13CheckInstanceERNS_18ScopedObjectAccessENS1_12InstanceKindEP8_jobjectb+72
# 8 pc 0xb706f /system/lib/libart.so _ZN3art12_GLOBAL__N_111ScopedCheck22CheckPossibleHeapValueERNS_18ScopedObjectAccessEcNS0_12JniValueTypeE+442
# 9 pc 0xb71e3 /system/lib/libart.so _ZN3art12_GLOBAL__N_111ScopedCheck22CheckPossibleHeapValueERNS_18ScopedObjectAccessEcNS0_12JniValueTypeE+814
#10 pc 0xb67bd /system/lib/libart.so
Phone: Redmi 6
Android version: 9 PPR1.180610.011
Defold version: 1.2.181
GPGS plugin version: 2.3.0
Symbols: https://www.dropbox.com/s/gwbld7sfqtej5nr/lib.zip?dl=0
Hi, this is sort-of-a cross-post with the Defold forums here: https://forum.defold.com/t/need-help-getting-id-token-from-google-play-services/73719
I'm trying to get an id_token from GPGS but I keep getting nil
. I've set up the game.project
with a client_id and request_id_token=1, but am not sure if I should be adding the Android Credentials client_id or a Web Credential client_id from the GCP panel.
The sign in is successful and I get the id and display name for my sign in, but I need the id_token as well for further authentication against Supabase in my case.
Can you help me with nailing down the cause of this? What might I be doing wrong?
Some quick code from my attempts (I try a silent login, and if that fails, I show a "sign in with Google" button.
function init(self)
local welcome_gui_url = msg.url("main:/welcome#welcome")
local function gpgs_callback(self, message_id, message)
if message_id == gpgs.MSG_SIGN_IN or message_id == gpgs.MSG_SILENT_SIGN_IN then
if message.status == gpgs.STATUS_SUCCESS then
print("Signed in")
print(gpgs.get_id())
print(gpgs.get_display_name())
print(gpgs.get_id_token())
msg.post(welcome_gui_url, "set_sign_in_visibility", { visible = false })
else
print("Sign in error!")
print(message.error)
msg.post(welcome_gui_url, "set_sign_in_visibility", { visible = true })
end
elseif message_id == gpgs.MSG_SIGN_OUT then
print("Signed out")
msg.post(welcome_gui_url, "set_sign_in_visibility", { visible = true })
end
end
if gpgs then
gpgs.set_callback(gpgs_callback)
gpgs.silent_login()
else
print("No gpgs")
msg.post(welcome_gui_url, "set_sign_in_visibility", { visible = false })
end
end
There are no API reference or autocomplete info for gps.event_* methods in the extension.
https://defold.com/extension-gpgs/#achievements
All of these are missing, possibly others are missing too.
.
Whenever I submit a score to my game's leaderboard the score shown on the leaderboard ends up being a long negative number instead of the actual score.
For example:
gpgs.leaderboard_submit_score(leaderboard_id, 5)
Instead of the leaderboard showing "5" as the score, it shows "-7,017,514,852,6...".
I've noticed if I call gpgs.leaderboard_get_player_score() right before submitting the score the leaderboard will show the correct score as "5".
There's also a problem with gpgs.leaderboard_get_player_score() though, because it crashes the game if the player doesn't already have a score on the leaderboard. The crash shows the following error:
Attempt to invoke interface method 'java.lang.String com.google.android.gms.games.leaderboard.LeaderboardScore.getDisplayRank()' on a null object reference
E Process: com.defold.extension.gpgs, PID: 20763
E java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.String com.google.android.gms.games.leaderboard.LeaderboardScore.getDisplay
Rank()' on a null object reference
E at com.defold.gpgs.GpgsJNI.scoreToJSON(GpgsJNI.java:624)
E at com.defold.gpgs.GpgsJNI.access$1700(GpgsJNI.java:53)
E at com.defold.gpgs.GpgsJNI$12.onSuccess(GpgsJNI.java:701)
E at com.defold.gpgs.GpgsJNI$12.onSuccess(GpgsJNI.java:695)
E at com.google.android.gms.tasks.zzn.run(Unknown Source:4)
E at android.os.Handler.handleCallback(Handler.java:883)
E at android.os.Handler.dispatchMessage(Handler.java:100)
E at android.os.Looper.loop(Looper.java:224)
E at android.app.ActivityThread.main(ActivityThread.java:7520)
E at java.lang.reflect.Method.invoke(Native Method)
E at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
E at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Currently, the plugin doesn't have a way to request for email and profile info while SignIn. Add a flag that can be configured in game.project for email and ProfileInfo.
The game.project configuration will look like:
[gpgs]
app_id = 29489714610
use_saved_games = 1
request_server_auth_code = 0
request_id_token = 1
client_id = somestring.google.com
request_email = 1
request_profile_info = 1
Add functions for email and profile info:
gpgs.get_email()
gpgs.get_profile()
Hello! Thanks for all your great work on Defold and extensions. 👍
I wanted to integrate GPSP with my new game, and am having crashes immediately on startup on my phone.
I'm trying to use silent login & leaderboards.
Any ideas what is going on? I've included as much info as I knew how to attain. Happy to get more if needed.
These two error messages seem to be where it crashes:
04-05 09:26:33.362 10853 10876 E defold : ERROR:GPGSEXT: Failed to parse JSON object(-1): (��H)
--------- beginning of crash
04-05 09:26:33.363 10853 10876 F libc : upload/gpgs/src/gpgs_callback.cpp:81: void gpgs_invoke_callback(MESSAGE_ID, char *): assertion "top == lua_gettop(L)" failed
Thanks!
Defold editor: Latest (1.2.167). Also on 1.2.166
Build: Android
Device: Google Pixel 3a XL
Relevant parts of game.project
dependencies = https://github.com/rgrams/rendercam/archive/v1.0.2.zip,https://github.com/subsoap/defsave/archive/v1.2.1.zip,https://github.com/MaratGilyazov/def_ironsource/archive/1.2.zip,https://github.com/defold/extension-gpgs/archive/1.2.3.zip
[gpgs]
app_id = xxxxxxxxxxxxxx
use_saved_games = 0
request_server_auth_code = 0
request_id_token = 0
Code which I call from an init()
lifecycle method. I don't see those prints in my logcat output.
local function callback(self, message_id, message)
if message_id == gpgs.MSG_SILENT_SIGN_IN then
if message.status == gpgs.STATUS_SUCCESS then
msg.post("/mainmenu#main_menu", "gpgs_login")
else
gpgs.login()
end
elseif message_id == gpgs.MSG_SIGN_IN then
if message.status == gpgs.STATUS_SUCCESS then
msg.post("/mainmenu#main_menu", "gpgs_login")
else
msg.post("/mainmenu#main_menu", "gpgs_login_failed")
end
end
end
function M.init()
if gpgs then
gpgs.set_callback(callback)
print("gpgs: init")
gpgs.silent_login()
print("gpgs: starting login")
end
end
Logcat:
04-04 21:52:20.612 1497 1603 I ActivityManager: Start proc 28058:dev.skaterdad.tpmadness/u0a278 for activity {dev.skaterdad.tpmadness/com.dynamo.android.DefoldActivity}
04-04 21:52:20.619 28058 28058 E erdad.tpmadnes: Not starting debugger since process cannot load the jdwp agent.
04-04 21:52:20.653 28058 28058 W erdad.tpmadnes: resources.arsc in APK '/data/app/dev.skaterdad.tpmadness-yX4fq6KUnOCCowKDxM2OLg==/base.apk' is compressed.
04-04 21:52:20.659 28058 28058 I MultiDex: VM with version 2.1.0 has multidex support
04-04 21:52:20.660 28058 28058 I MultiDex: install
04-04 21:52:20.660 28058 28058 I MultiDex: VM has multidex support, MultiDex support library is disabled.
04-04 21:52:20.684 28058 28058 V threaded_app: Creating: 0x7d74087cc0
04-04 21:52:20.684 28058 28081 V threaded_app: Config: mcc=311 mnc=480 lang=en cnt=US orien=1 touch=3 dens=400 keys=1 nav=1 keysHid=3 navHid=0 sdk=29 size=2 long=2 modetype=1 modenight=1
04-04 21:52:20.685 28058 28081 V glfw-android: _glfwPreMain
04-04 21:52:20.688 8081 8104 I MicroDetectionState: Should stop hotword detection immediately - false
04-04 21:52:20.688 28058 28058 V threaded_app: Start: 0x7d74087cc0
04-04 21:52:20.688 28058 28081 V threaded_app: activityState=10
04-04 21:52:20.688 28058 28081 V glfw-android: handleCommand: APP_CMD_START
04-04 21:52:20.689 28058 28058 V threaded_app: Resume: 0x7d74087cc0
04-04 21:52:20.689 28058 28081 V threaded_app: activityState=11
04-04 21:52:20.689 28058 28081 V glfw-android: handleCommand: APP_CMD_RESUME
04-04 21:52:20.697 28058 28058 V threaded_app: InputQueueCreated: 0x7d74087cc0 -- 0x7d74087f40
04-04 21:52:20.697 28058 28081 V threaded_app: APP_CMD_INPUT_CHANGED
04-04 21:52:20.697 28058 28081 V threaded_app: Attaching input queue to looper
04-04 21:52:20.697 28058 28081 V glfw-android: handleCommand: APP_CMD_INPUT_CHANGED
04-04 21:52:20.707 28058 28058 V threaded_app: NativeWindowCreated: 0x7d74087cc0 -- 0x7e09787010
04-04 21:52:20.708 28058 28081 V threaded_app: APP_CMD_INIT_WINDOW
04-04 21:52:20.708 28058 28081 V glfw-android: handleCommand: APP_CMD_INIT_WINDOW
04-04 21:52:20.709 28058 28058 V threaded_app: WindowFocusChanged: 0x7d74087cc0 -- 1
04-04 21:52:20.724 1497 1600 I ActivityTaskManager: Displayed dev.skaterdad.tpmadness/com.dynamo.android.DefoldActivity: +154ms
04-04 21:52:20.724 28058 28081 V glfw-android: _glfwPlatformInit
04-04 21:52:20.726 28058 28081 V glfw-android: init_gl
04-04 21:52:20.726 28058 28081 I Adreno : QUALCOMM build : 4a00b69, I4e7e888065
04-04 21:52:20.726 28058 28081 I Adreno : Build Date : 04/09/19
04-04 21:52:20.726 28058 28081 I Adreno : OpenGL ES Shader Compiler Version: EV031.26.06.00
04-04 21:52:20.726 28058 28081 I Adreno : Local Branch :
04-04 21:52:20.726 28058 28081 I Adreno : Remote Branch :
04-04 21:52:20.726 28058 28081 I Adreno : Remote Branch :
04-04 21:52:20.726 28058 28081 I Adreno : Reconstruct Branch :
04-04 21:52:20.726 28058 28081 I Adreno : Build Config : S P 8.0.6 AArch64
04-04 21:52:20.730 28058 28081 I Adreno : PFP: 0x016ee183, ME: 0x00000000
04-04 21:52:20.736 28058 28081 V glfw-android: create_gl_aux_context..
04-04 21:52:20.737 28058 28081 V glfw-android: create_gl_aux_context success
04-04 21:52:20.737 28058 28081 V glfw-android: _glfwPlatformOpenWindow
04-04 21:52:20.737 28058 28081 V glfw-android: create_gl_surface
04-04 21:52:20.738 882 882 D [email protected]: LAUNCH: 0
04-04 21:52:20.760 28058 28081 E defold.sound: App is missing the READ_PHONE_STATE permission. Audio will continue while phone call is active.
04-04 21:52:20.760 28058 28089 E GooglePlayServicesUtil: The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.
04-04 21:52:20.766 28058 28081 W libOpenSLES: No channel mask specified; Using mask 0x3 based on requestedspeaker count of 2
04-04 21:52:20.766 28058 28081 D : PlayerBase::PlayerBase()
04-04 21:52:20.766 28058 28081 D : TrackPlayerBase::TrackPlayerBase()
04-04 21:52:20.766 28058 28081 I libOpenSLES: Emulating old channel mask behavior (ignoring positional mask 0x3, using default mask 0x3 based on channel count of 2)
04-04 21:52:20.770 907 12636 D AudioFlinger: Client defaulted notificationFrames to 96 for frameCount 576
04-04 21:52:20.771 907 12636 D AF::TrackHandle: OpPlayAudio: track:6038 usage:1 not muted
04-04 21:52:20.773 28058 28081 I AudioTrack: createTrack_l(0): AUDIO_OUTPUT_FLAG_FAST successful; frameCount 0 -> 576
04-04 21:52:20.816 580 580 I hwservicemanager: getTransport: Cannot find entry [email protected]::IMapper/default in either framework or device manifest.
04-04 21:52:20.817 28058 28081 W Gralloc3: mapper 3.x is not supported
04-04 21:52:20.821 28058 28081 V glfw-android: handleCommand: APP_CMD_GAINED_FOCUS
04-04 21:52:21.002 28058 28058 E GooglePlayServicesUtil: The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.
04-04 21:52:21.028 28058 28081 I IntegrationHelper: Verifying Integration:
04-04 21:52:21.028 28058 28081 I IntegrationHelper: *** Permissions ***
04-04 21:52:21.029 28058 28081 I IntegrationHelper: android.permission.INTERNET - VERIFIED
04-04 21:52:21.029 28058 28081 I IntegrationHelper: android.permission.ACCESS_NETWORK_STATE - VERIFIED
04-04 21:52:21.033 22426 690 W GamesServiceBroker: Client connected with SDK 200914000, Services 200914000, Stub module 65579999, and Games 0
04-04 21:52:21.033 28058 28081 I IntegrationHelper: com.ironsource.sdk.controller.InterstitialActivity - VERIFIED
04-04 21:52:21.033 22426 690 W GamesServiceBroker: Launching Play games upgrade activity
04-04 21:52:21.040 28058 28107 W IntegrationHelper: --------------- Google Play Services --------------
04-04 21:52:21.041 28058 28107 I IntegrationHelper: Google Play Services - VERIFIED
04-04 21:52:21.042 22426 22509 I PeopleChimeraService: onService. callbacks = aagj@576c4c6, request = com.google.android.gms.common.internal.GetServiceRequest@aaa4c87
--------- beginning of crash
04-04 21:52:21.043 28058 28081 F libc : upload/gpgs/src/gpgs_callback.cpp:81: void gpgs_invoke_callback(MESSAGE_ID, char *): assertion "top == lua_gettop(L)" failed
04-04 21:52:21.045 28058 28106 D NetworkSecurityConfig: No Network Security Config specified, using platform default
04-04 21:52:21.058 2925 2925 I Elmyra/ElmyraService: Gated by NavigationBarVisibility [mIsNavigationHidden -> true; mExceptions -> [DismissTimer [mReceiverRegistered -> true], SnoozeAlarm [mReceiverRegistered -> true], SilenceCall [mSilenceSettingEnabled -> true], SettingsAction]; mIsNavigationGestural -> false; isActiveAssistantNga() -> false]
04-04 21:52:21.059 866 866 V ContextHubHal: sendMessageToHub
04-04 21:52:21.059 28058 28081 I defold : INFO:CRASH: Successfully wrote Crashdump to file: /data/user/0/dev.skaterdad.tpmadness/files/_crash
04-04 21:52:21.059 28058 28081 E defold : ERROR:CRASH: CALL STACK:
04-04 21:52:21.059 28058 28081 E defold :
04-04 21:52:21.059 28058 28081 E defold : # 0 pc 0x8bc [vdso] <unknown>+0
04-04 21:52:21.059 28058 28081 E defold : # 1 pc 0x41f70 ...oid.runtime/lib64/bionic/libc.so abort+156
04-04 21:52:21.059 28058 28081 E defold :
04-04 21:52:21.059 28058 28081 E defold :
04-04 21:52:21.060 883 1154 D CHRE : @ 1913766.063: Parsed nanoapp message from host: app ID 0x476f6f676c00100e, endpoint 0x1, msgType 201, payload size 0
04-04 21:52:21.096 1497 2099 W InputDispatcher: channel 'a0aa997 dev.skaterdad.tpmadness/com.dynamo.android.DefoldActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9
04-04 21:52:21.096 1497 2099 E InputDispatcher: channel 'a0aa997 dev.skaterdad.tpmadness/com.dynamo.android.DefoldActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
04-04 21:52:21.097 1497 2851 I WindowManager: WIN DEATH: Window{a0aa997 u0 dev.skaterdad.tpmadness/com.dynamo.android.DefoldActivity}
04-04 21:52:21.097 1497 2851 W InputDispatcher: Attempted to unregister already unregistered input channel 'a0aa997 dev.skaterdad.tpmadness/com.dynamo.android.DefoldActivity (server)'
04-04 21:52:21.097 1497 14223 I ActivityManager: Process dev.skaterdad.tpmadness (pid 28058) has died: fore TOP
04-04 21:52:21.097 1497 1604 I libprocessgroup: Successfully killed process cgroup uid 10278 pid 28058 in 0ms
04-04 21:52:21.098 13218 13218 V AvrcpMediaPlayerList: onPlaybackConfigChanged(): Configs list size=6
04-04 21:52:21.099 850 850 I Zygote : Process 28058 exited due to signal 6 (Aborted)
04-04 21:52:21.101 1497 14223 W ActivityTaskManager: Force removing ActivityRecord{476a645 u0 dev.skaterdad.tpmadness/com.dynamo.android.DefoldActivity t1686}: app died, no saved state
04-04 21:52:21.101 793 28109 E ResolverController: No valid NAT64 prefix (385, <unspecified>/0)
04-04 21:52:21.102 793 28109 W SocketClient: write error (Broken pipe)
Logcat from a DEBUG build:
04-05 09:26:33.361 10853 10876 E defold : ERROR:DLIB: ../src/dlib/socket.cpp( 94 ): SOCKET: Unknown result code 1
04-05 09:26:33.361 10853 10876 E defold :
04-05 09:26:33.361 10853 10876 W defold : WARNING:DLIB: Failed to send announce message (-1000)
04-05 09:26:33.362 10853 10876 E defold : ERROR:GPGSEXT: Failed to parse JSON object(-1): (��H)
--------- beginning of crash
04-05 09:26:33.363 10853 10876 F libc : upload/gpgs/src/gpgs_callback.cpp:81: void gpgs_invoke_callback(MESSAGE_ID, char *): assertion "top == lua_gettop(L)" failed
04-05 09:26:33.383 860 17912 D ACDB-LOADER: ACDB -> send_audio_cal, acdb_id = 513, path = 0, app id = 0x11130, sample rate = 48000
04-05 09:26:33.383 860 17912 D ACDB-LOADER: ACDB -> send_asm_topology
04-05 09:26:33.383 860 17912 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_STREAM_TOPOLOGY_ID
04-05 09:26:33.383 860 17912 D ACDB-LOADER: ACDB -> send_adm_topology
04-05 09:26:33.383 860 17912 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_COMMON_TOPOLOGY_ID
04-05 09:26:33.383 860 17912 D ACDB-LOADER: ACDB -> send_audtable
04-05 09:26:33.383 860 17912 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_COMMON_TABLE_SIZE
04-05 09:26:33.383 860 17912 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_COMMON_TABLE
04-05 09:26:33.383 860 17912 D ACDB-LOADER: ACDB -> AUDIO_SET_AUDPROC_CAL
04-05 09:26:33.383 860 17912 D ACDB-LOADER: ACDB -> send_audvoltable
04-05 09:26:33.383 860 17912 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_VOL_STEP_TABLE_SIZE
04-05 09:26:33.383 860 17912 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_GAIN_DEP_STEP_TABLE, vol index 0
04-05 09:26:33.383 860 17912 D : Failed to fetch the lookup information of the device 00000201
04-05 09:26:33.383 860 17912 E ACDB-LOADER: Error: ACDB AudProc vol returned = -19
04-05 09:26:33.383 860 17912 D ACDB-LOADER: ACDB -> AUDIO_SET_VOL_CAL cal type = 12
04-05 09:26:33.383 860 17912 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_STREAM_TABLE_SIZE
04-05 09:26:33.383 860 17912 D ACDB-LOADER: ACDB -> send_audstrmtable
04-05 09:26:33.383 860 17912 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_STREAM_TABLE_V2
04-05 09:26:33.384 860 17912 D ACDB-LOADER: ACDB -> audstrm_cal->cal_type.cal_data.cal_size = 488
04-05 09:26:33.384 860 17912 D ACDB-LOADER: ACDB -> send_afe_topology
04-05 09:26:33.384 860 17912 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AFE_TOPOLOGY_ID
04-05 09:26:33.384 860 17912 D ACDB-LOADER: ACDB -> GET_AFE_TOPOLOGY_ID for adcd_id 513, Topology Id 10000ccc
04-05 09:26:33.384 860 17912 D ACDB-LOADER: ACDB -> send_afe_cal
04-05 09:26:33.384 860 17912 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AFE_COMMON_TABLE_SIZE
04-05 09:26:33.384 860 17912 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AFE_COMMON_TABLE
04-05 09:26:33.384 860 17912 D ACDB-LOADER: ACDB -> AUDIO_SET_AFE_CAL
04-05 09:26:33.384 860 17912 D ACDB-LOADER: ACDB -> send_hw_delay : acdb_id = 513 path = 0
04-05 09:26:33.384 860 17912 D ACDB-LOADER: ACDB -> ACDB_AVSYNC_INFO: ACDB_CMD_GET_DEVICE_PROPERTY
04-05 09:26:33.384 860 17912 D audio_hw_primary: enable_audio_route: usecase(5) apply and update mixer path: audio-ull-playback speaker
04-05 09:26:33.384 860 17912 D audio_route: Apply path: audio-ull-playback speaker
04-05 09:26:33.439 860 17912 D audio_hw_primary: out_write: retry previous failed cal level set
04-05 09:26:33.439 882 882 D [email protected]: AUDIO_STREAMING: 0
04-05 09:26:33.439 860 17912 W msm8974_platform: platform_send_gain_dep_cal: Usecase list is empty
04-05 09:26:33.439 860 17912 W qc_adm : margin check: adm_request_focus_v2(p) failed diff -240
04-05 09:26:33.439 882 882 D [email protected]: AUDIO_LOW_LATENCY: 1
04-05 09:26:33.439 860 17912 W qc_adm : margin check: adm_abandon_focus(p) failed diff -240
04-05 09:26:33.467 860 17912 D qc_adm : ns 1581612 > expected_ns 1000000 (skipped 0)
04-05 09:26:33.479 860 17912 D qc_adm : ns 1569528 > expected_ns 1000000 (skipped 0)
04-05 09:26:33.497 860 17912 D qc_adm : ns 1557703 > expected_ns 1000000 (skipped 0)
04-05 09:26:33.501 860 17912 D qc_adm : ns 1539786 > expected_ns 1000000 (skipped 0)
04-05 09:26:33.504 10853 10876 I defold : INFO:CRASH: Successfully wrote Crashdump to file: /data/user/0/dev.skaterdad.tpmadness/files/_crash
04-05 09:26:33.504 10853 10876 E defold : ERROR:CRASH: CALL STACK:
04-05 09:26:33.504 10853 10876 E defold :
04-05 09:26:33.504 10853 10876 E defold : # 0 pc 0x8bc [vdso] <unknown>+0
04-05 09:26:33.504 10853 10876 E defold : # 1 pc 0x41f70 ...oid.runtime/lib64/bionic/libc.so abort+156
04-05 09:26:33.504 10853 10876 E defold :
04-05 09:26:33.504 10853 10876 E defold :
04-05 09:26:33.543 1497 2099 W InputDispatcher: channel '47bca0c dev.skaterdad.tpmadness/com.dynamo.android.DefoldActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9
04-05 09:26:33.543 1497 2099 E InputDispatcher: channel '47bca0c dev.skaterdad.tpmadness/com.dynamo.android.DefoldActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
04-05 09:26:33.544 1497 5972 I WindowManager: WIN DEATH: Window{47bca0c u0 dev.skaterdad.tpmadness/com.dynamo.android.DefoldActivity}
04-05 09:26:33.544 1497 2976 I ActivityManager: Process dev.skaterdad.tpmadness (pid 10853) has died: fore TOP
Update: Removing the Ironsource extension removed the crash, so there may be some kind of conflict?
We recommend using a link to a zip file of a https://github.com/defold/extension-gpgs/releases.
in the documentation its specified that we need to set the app_id
however the extension is looking up for the client_id
03-17 18:24:23.111 21805 21924 E defold : ERROR:GpgsExt: 'gpgs.client_id' must be defined to request id token
Noticing this constant not triggering a condition in the callback, I tested :
pprint("MSG_SILENT_SIGN_IN:",gpgs.MSG_SILENT_SIGN_IN)
pprint("MSG_SIGN_OUT:",gpgs.MSG_SIGN_OUT)
pprint("MSG_SHOW_SNAPSHOTS:",gpgs.MSG_SHOW_SNAPSHOTS)
pprint("MSG_LOAD_SNAPSHOT:",gpgs.MSG_LOAD_SNAPSHOT)
pprint("MSG_SAVE_SNAPSHOT:",gpgs.MSG_SAVE_SNAPSHOT)
pprint("MSG_GET_ACHIEVEMENTS:",gpgs.MSG_GET_ACHIEVEMENTS)
pprint("MSG_GET_TOP_SCORES:",gpgs.MSG_GET_TOP_SCORES)
pprint("MSG_GET_PLAYER_CENTERED_SCORES:",gpgs.MSG_GET_PLAYER_CENTERED_SCORES)
pprint("MSG_GET_PLAYER_SCORE:",gpgs.MSG_GET_PLAYER_SCORE)
pprint("MSG_GET_EVENTS:",gpgs.MSG_GET_EVENTS)
Result:
DEBUG:SCRIPT: MSG_SIGN_IN:,
1
DEBUG:SCRIPT: MSG_SILENT_SIGN_IN:,
2
DEBUG:SCRIPT: MSG_SIGN_OUT:,
3
DEBUG:SCRIPT: MSG_SHOW_SNAPSHOTS:,
4
DEBUG:SCRIPT: MSG_LOAD_SNAPSHOT:,
5
DEBUG:SCRIPT: MSG_SAVE_SNAPSHOT:,
nil
DEBUG:SCRIPT: MSG_GET_ACHIEVEMENTS:,
7
DEBUG:SCRIPT: MSG_GET_TOP_SCORES:,
8
DEBUG:SCRIPT: MSG_GET_PLAYER_CENTERED_SCORES:,
9
DEBUG:SCRIPT: MSG_GET_PLAYER_SCORE:,
10
DEBUG:SCRIPT: MSG_GET_EVENTS:,
11
Notice the nil value for MSG_SAVE_SNAPSHOT.
The messages still get sent with the correct id = 6, but gpgs.MSG_SAVE_SNAPSHOT = nil.
It could be because, while MSG_SAVE_SNAPSHOT is well defined in GpgsJNI.java and gpgs_extension.h , there is no SETCONSTANT for it in gpgs_extension.cpp
In the Google Play Console, I see a crash from a Samsung Galaxy A11 (Android 10, SDK 29).
This is presumably related to extension-gpgs
, which is my only native extension using AndroidX. The version of the game implied it was the Android Instant version also, if that matters.
Any ideas what this could be? It only happened once, so I'm not super worried about it.
This all the details they provided:
java.lang.NoClassDefFoundError:
at androidx.core.view.ViewCompat.<clinit> (ViewCompat.java:1199)
at androidx.core.view.ViewCompat.dispatchUnhandledKeyEventBeforeHierarchy (ViewCompat.java:3802)
at androidx.core.view.KeyEventDispatcher.dispatchBeforeHierarchy (KeyEventDispatcher.java:63)
at androidx.core.app.ComponentActivity.dispatchKeyEvent (ComponentActivity.java:137)
at com.android.internal.policy.DecorView.dispatchKeyEvent (DecorView.java:585)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent (ViewRootImpl.java:6441)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:6305)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:5747)
at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:5800)
at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:5766)
at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:5922)
at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:5774)
at android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:5979)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:5747)
at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:5800)
at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:5766)
at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:5774)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:5747)
at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:5800)
at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:5766)
at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:5922)
at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:5774)
at android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:5979)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:5747)
at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:5800)
at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:5766)
at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:5774)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:5747)
at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:5800)
at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:5766)
at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:5922)
at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:5774)
at android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:5979)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:5747)
at android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:8906)
at android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:8767)
at android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:8720)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:9042)
at android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:194)
at android.os.MessageQueue.nativePollOnce (Native Method)
at android.os.MessageQueue.next (MessageQueue.java:336)
at android.os.Looper.loop (Looper.java:197)
at android.app.ActivityThread.main (ActivityThread.java:7814)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1075)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.