Google Play Asset Delivery - Crash after splash screen

I have a working Android aplication which I am now required to upload with Google PAD support, yet after following the documentation and trying multiple changes the App always crashes afer the Unreal Engine splash screen. The aplication starts fine if PAD is disabled.

Log output shows this:
[SPOILER]


 Error: === Critical error: ===
Error: Assertion failed: Method != 0 [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Launch/Private/Android/AndroidJNI.cpp] [Line: 226]
Error: Failed to find Method
Error: [Callstack] 0x0000007F88DBE080 libUE4.so(0x00000000072A5080)!FDebug::CheckVerifyFailedImpl(char const*, char const*, int, char16_t const*, ...) ]
Error: [Callstack] 0x0000007F883626E4 libUE4.so(0x00000000068496E4)!FJavaWrapper::FindMethod(_JNIEnv*, _jclass*, char const*, char const*, bool) ]
Error: [Callstack] 0x0000007F889D3C10 libUE4.so(0x0000000006EBAC10)!UGooglePADFunctionLibrary::Initialize() ]
Error: [Callstack] 0x0000007F88E7EABC libUE4.so(0x0000000007365ABC)!FModuleManager::LoadModuleWithFailureReason(FName, EModuleLoadResult&) ]
Error: [Callstack] 0x0000007F89086674 libUE4.so(0x000000000756D674)!FModuleDescriptor::LoadModulesForPhase(ELoadingPhase::Type, TArray<FModuleDescriptor, TSizedDefaultAllocator<32> > const&, TMap<FName, EModuleLoadResult, FDefaultSetAllocator, TDefault
MapHashableKeyFuncs<FName, EModuleLoadResult, false> >&) ]
Error: [Callstack] 0x0000007F89098C84 libUE4.so(0x000000000757FC84)![Unknown]() ]
Error: [Callstack] 0x0000007F890989AC libUE4.so(0x000000000757F9AC)!FPluginManager::LoadModulesForEnabledPlugins(ELoadingPhase::Type) ]
Error: [Callstack] 0x0000007F883870A4 libUE4.so(0x000000000686E0A4)!FEngineLoop::LoadStartupModules() ]
Error: [Callstack] 0x0000007F88384894 libUE4.so(0x000000000686B894)!FEngineLoop::PreInitPostStartupScreen(char16_t const*) ]
Error: [Callstack] 0x0000007F8836D134 libUE4.so(0x0000000006854134)!FEngineLoop::PreInit(int, char16_t**, char16_t const*) ]
Error: [Callstack] 0x0000007F8836CCA4 libUE4.so(0x0000000006853CA4)!AndroidMain(android_app*) ]
Error: [Callstack] 0x0000007F88379BB8 libUE4.so(0x0000000006860BB8)!android_main() ]
Error: [Callstack] 0x0000007F883A2CDC libUE4.so(0x0000000006889CDC)![Unknown]() ]
Error: [Callstack] 0x0000007FB23DE5FC libc.so(0x00000000000685FC)![Unknown]() ]
Error: [Callstack] 0x0000007FB2393EF0 libc.so(0x000000000001DEF0)![Unknown]() ]
 

[/SPOILER]

Which I understand as missing a library in wich “UGooglePADFunctionLibrary::Initialize()” is defined, maybe?

I would really appreciate any help, thanks.

Other info:
Engine 4.25.4 (also tested on 4.26.1)
NDK and SDK as documentation

Did you find any solution to that?

Haven’t found a solution yet.
I’m curious if people are currently using this plugin without problems and this is just some problem with my setup or not. I’ll be reinstalling Android studio just to test if it works without any kind of component updated. But I’m running out of ideas.

It seems like u miss some Plugin in there. Have u activated some third party plugin?

I got the same problem, solved by turn off plugin ( my case was Editor Scripting Utility )
Your case may be FModule.

Other option, u should look for .Log file in your Android Mobile, in there they will write down what cause the crash, then upload here for me.

I have no external plugins installed, only enabled Google PAD and Online services (But it only crashes with PAD).
As for FModule, I don’t think I can disable it as it seems to be the Unreal’s module loader, still I´ve tried disabling Editor Scripting Utility without success.

Using “adb logcat” I’ve got this:


System.err: java.lang.NoSuchMethodError: no non-static method "Lcom/epicgames/ue4/GameActivity;.AndroidThunkJava_GooglePAD_Available()Z"
Assertion failed: Method != 0 [File:D
https:\/\/forums.unrealengine.com\/core\/image\/gif;base64
​:/Build/++UE4/Sync/Engine/Source/Runtime/Launch/Private/Android/AndroidJNI.cpp] [Line: 226]
Failed to find Method
Assertion failed: Method != 0 [File:D
https:\/\/forums.unrealengine.com\/core\/image\/gif;base64
​:/Build/++UE4/Sync/Engine/Source/Runtime/Launch/Private/Android/AndroidJNI.cpp] [Line: 226]
Failed to find Method

After this it´s the same output from the editor log posted before.

Are you using Play Asset Delivery with no problems on 4.25.4 or later?

I wrote an email to one of Epic’s employees.

I’m having the same problem and get this error on start “failed to open descriptor file uproject”

I have the same problem

Nice, hope he can give us some insight into this.
By the way, I’ve tested on a new empty C++ project on 4.26.1 with install-time only config and I am getting the same error.
Also tested uploading into Google Play and using bundletool to deploy the application, ending in both cases with the same crash.

Saxhack:
I’m not getting a descriptor error. But you can try with this:

It may solve your problem.

When I first packaged it worked without any error. And I did uploaded it to Google Play. Then next time it gives this error. Now 3 days straight hell can’t find solution

Has anyone found a solution to this?

No solution that I’m aware off yet. Right now I’m experimenting with building the project on Android Studio and not using the plugin at all

Well, right now it’s working:

New empty C++ project (4.26.1), install time and only ticking “enable” on PAD.
imagen_2021-03-22_215830.png
Not really sure what’s different from the last time I’ve tried it, so I 'cant really say this is the solution, but it is working.

Also:
Ticking any of the “only” options crash the app as before.
Haven’t tried anything else except install-time only deliveries, but I’ve called the download API and, while it failed because
I didn’t have anything to download, it did execute fine without crashing the app.

I also launched with “Only Distribution” and “Only Shipping” disabled via LAUNCH button in Editor on android. But when I package and install the error remains.

Also it’s generating just install-time only deliveries. Couldn’t make it generate Fast-Follow and On-Demand asset packs.

I´m really only testing with install-time with this settings:
Package Data inside APK (disabled)
Generate chunks (disabled)

Use Pak file (enabled)

I made a new project and after I managed to make it work I copied the content folder to the new project.
As I´ve said before, it may be something else and not this particular configuration that makes it work.

Fast-follow packages were generated when I was testing it before, but since the app crashed I cant say if they were actually working.
Maybe you could try using this Install-time config first to test if PAD works and then move up to other delivery methods?

How exactly did you created Fast-follow packages? I’ve read the documentation but didn’t understand when and where to move chunks to create fast-follow deliveries

I used the Data Asset approach, setting chunk ID 1 for fast-follow and leaving the rest with the default ID for the base installation.
Chunks get saved in “Saved\StagedBuilds[PlatformName][ProjectName]\Content\Paks” when you build the app, and then you are supposed to move them to
“Build/Android/gradle/assetpacks/fast-follow/[assetpackname]/src/main/assets” so that they get packaged into the ABB next time you generate it.

As I’ve said before, I’ve never got it actually running, but paks where generated and integrated into de ABB.

I think problem is with build.gradle file. Where did you put it?

screenshot