It took so long to identify what is causing the problem as this is not regular issue. Big apologies about that but this is very complicated problem because UE 4.20 has rewritten Android build system. What’s more it depends on many factors and configuration options. We are now closer to solution and I would like to let you know that we are talking directly to Epic Games how to resolve this issue and hopefully hotfix will be released very soon…
Thank you for your patience and sorry again…
**EDIT: Problem has been fixed in new updates: 1.9.3 for UE 4.20 and 1.10.1 for UE 4.21! **
We are trying to integrate ML Kit into UE4 but you know - this is very complex task, it will be definitely released in the future, but we can’t provide any ETA at the current stage.
No, you should ignore this message. Ultimate Mobile Kit handles everything automatically.
Please make sure application IDs in Firebase and in Fabric are both the same. If yes, please contact with Firebase support here Firebase Support as this is related directly to Firebase Dashboard.
We’ve just released new update for Ultimate Mobile Kit.
You can download it from GitHub repository on releases tab or your Sellfy dashboard (for Sellfy customers). Update also was submitted for UE4 Marketplace but it needs to wait for approval.
CHANGELOG:
Added automatic processing Info.plist nodes. No more manual adding entries in Project Settings!
We’ve just released plugin binaries for Unreal Engine 4.21.
You can download it from GitHub repository on releases tab or your Sellfy dashboard (for Sellfy customers). Update also was submitted for UE4 Marketplace but it needs to wait for approval.
We’ve just released plugin binaries 1.10.1 for UE 4.21 and 1.9.3 for UE 4.20.
You can download it from GitHub repository on releases tab or your Sellfy dashboard (for Sellfy customers). Update also was submitted for UE4 Marketplace but it needs to wait for approval.
CHANGELOG OF 1.10.1 VERSION:
Crashlytics SDK updates
Fixed missing symbols in Crashlytics for Android
New version of Google Services Plist Generator with fixed paths on UNIX systems.
Fixed occassional crash in Firebase Crashlytics functions. Fix commited by 함대호 from WeMade Next.
Added automatic Crashlytics symbols uploading for Android.
Hi, I have a problem with Upload dSyms for Android.
version
Unreal Engine 4.20.3 / Ultimate Mobile Kit 1.9.3
androidNdkOut ‘build/intermediates/transforms/mergeJniLibs’
androidNdkLibsOut ‘build/intermediates/transforms/stripDebugSymbol’
Here is My log
Code:
> Configure project :app
Configuration 'compile' in project ':app' is deprecated. Use 'implementation' instead.
Observed package id 'build-tools;25.0.3' in inconsistent location 'C:\NVPACK\android-sdk-windows\build-tools\android-7.1.1' (Expected 'C:\NVPACK\android-sdk-windows\build-tools\25.0.3')
Observed package id 'build-tools;25.0.3' in inconsistent location 'C:\NVPACK\android-sdk-windows\build-tools\android-7.1.1' (Expected 'C:\NVPACK\android-sdk-windows\build-tools\25.0.3')
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
> Task :app:processDebugGoogleServices
Parsing json file: D:\Dev_Test\Client\Intermediate\Android\APK\gradle\app\google-services.json
> Task :app:crashlyticsGenerateSymbolsDebug
ERROR - Crashlytics Developer Tools error.
java.lang.IllegalArgumentException: Multiple files matching D:\Dev_Test\Client\Intermediate\Android\APK\gradle\app\build\intermediates ransforms\mergeJniLibs\debug\0\lib\arm64-v8a\libcrashlytics.so in D:\Dev_Test\Client\Intermediate\Android\APK\gradle\app\build\intermediates ransforms\stripDebugSymbol were found. Is the -androidNdkLibsOut setting configured correctly?
at com.crashlytics.tools.android.project.codemapping.csym.AndroidCSymIdStrategy.createCSymIdForFile(AndroidCSymIdStrategy.java:64)
at com.crashlytics.tools.android.project.codemapping.csym.ElfCSymFactory.createCSymFromFile(ElfCSymFactory.java:94)
at com.crashlytics.tools.android.project.codemapping.csym.NdkCSymGenerator.generateCodeMappings(NdkCSymGenerator.java:70)
at com.crashlytics.tools.android.project.CSymManager.generate(CSymManager.java:96)
at com.crashlytics.tools.android.DeveloperTools.processProperties(DeveloperTools.java:692)
at com.crashlytics.tools.android.DeveloperTools.processArgsInternal(DeveloperTools.java:348)
at com.crashlytics.tools.android.DeveloperTools.gradleMain(DeveloperTools.java:292)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.invoke(StaticMetaMethodSite.java:46)
at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.call(StaticMetaMethodSite.java:91)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at com.crashlytics.tools.gradle.tasks.FabricTaskBuilder.callDevtoolsWrappingRuntimeExceptions(FabricTaskBuilder.groovy:359)
at com.crashlytics.tools.gradle.tasks.FabricTaskBuilder.this$2$callDevtoolsWrappingRuntimeExceptions(FabricTaskBuilder.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:384)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166)
at com.crashlytics.tools.gradle.tasks.FabricTaskBuilder$_crashlyticsGenerateSymbols_closure10.doCall(FabricTaskBuilder.groovy:190)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
at groovy.lang.Closure.call(Closure.java:414)
at groovy.lang.Closure.call(Closure.java:430)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:681)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:656)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:60)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:128)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:46)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
at org.gradle.initialization.DefaultGradleLauncher$ExecuteTasks.run(DefaultGradleLauncher.java:311)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
at org.gradle.initialization.DefaultGradleLauncher.runTasks(DefaultGradleLauncher.java:202)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:132)
at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:107)
at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:78)
at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:75)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:152)
at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:100)
at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:75)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$1.run(RunAsBuildOperationBuildActionRunner.java:43)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:40)
at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:45)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:29)
at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)
at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:71)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:45)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:51)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:32)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:64)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:29)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:42)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:58)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:33)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:50)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:745)
we’ve just tested it again with UE 4.20 and UMA 1.9.3 and it should work good.
Could you please delete [PROJECT_FOLDER]/Intermediate, build, and try to upload symbols again? If it still fails, is this development or shipping build? Is this for architecture arm-v7a, arm64, or both?
I tried to upload symbol after delete Intermediate and build, but still fail. (development build / architecture armv7)
when I remove androidNdkLibsOut ‘build/intermediates/transforms/stripDebugSymbol’ line, file uploaded successfully.
In this case, androidNdkLibsOut in crashlytics.log file was ‘build\intermediates ransforms\stripDebugSymbol\debug’
I have another question.
I want to upload symbol file automatically, so added this code to UltimateMobileKit_UPL_Android.xml
It looks fine… When you delete androidNdkLibsOut it tries to find necessary folder automatically. Could you check if stack traces with symbols are visible on the Firebase Crashlytics Dashboard?
Crashed: Thread: SIGSEGV 0x0000000000000000
at My SourceCode FunctionName (FileName:Line)
at (Missing)()
at UFunction::Invoke(UObject*, FFrame&, void*)(Class.cpp:4728)
at UObject::ProcessEvent(UFunction*, void*)(ScriptCore.cpp:1342)
at UObject::FindFunction(FName) const(ScriptCore.cpp:1173)
at (Missing)()
at (Missing)()
at void TScriptDelegate<FWeakObjectPtr>::ProcessDelegate<UObject>(void*) const(ScriptDelegates.h:240)
at SCheckBox::OnMouseButtonDoubleClick(FGeometry const&, FPointerEvent const&)(SButton.cpp:249)
at FOnButtonClickedEvent_DelegateWrapper(TMulticastScriptDelegate<FWeakObjectPtr> const&)(Button.h:17)
at decltype ((((*this).Obj)->*((*this).MemFunPtr))()) TMemberFunctionCaller<UUserWidget, FVector2D (UUserWidget::*)() const>::operator()<>()(DelegateInstanceInterface.h:156)
at TBaseDelegate<FReply>::Execute() const(DelegateSignatureImpl.inl:537)
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
I have another problem.
UMK ForceCrash, ForceException not working at Android.
I called this function using custom console command.
But there is any crash, or exception and I can’t open Unreal Console window after function call.
When I changed “throw new RuntimeException(“This is a crash”)” to Crashlytics.logException(new RuntimeException(“This is a crash”), it worked.
I modified UltimateMobileKit_UPL_Android.xml.
Now it works well
public void AndroidThunkJava_FirebaseCrashlyticsForceCrash()
{
GameActivity._activity.runOnUiThread(new Runnable() {
@Override
public void run() {
Crashlytics.getInstance().crash();
}
});
}
public void AndroidThunkJava_FirebaseCrashlyticsForceException()
{
GameActivity._activity.runOnUiThread(new Runnable() {
@Override
public void run() {
throw new RuntimeException("This is a crash");
}
});
}
We’ve just released hotfix for UE 4.21.
You can download it from GitHub repository on releases tab or your Sellfy dashboard (for Sellfy customers). Update also was submitted for UE4 Marketplace but it needs to wait for approval.
CHANGELOG:
Added improvements for Android 9 (Pie)
Added improvements for iOS 12, iPhone XS, iPhone XS Max, and iPhone XR
Firebase SDK for all platforms updated to 5.4.3
Firebase Core SDK for Android updated to 16.0.5
Firebase Analytics SDK for Android updated to 16.0.5
Firebase Database SDK for Android updated to 16.0.5
Firebase Auth SDK for Android updated to 16.0.5
Firebase Invites SDK for Android updated to 16.0.5
Firebase Performance Monitoring SDK for Android updated to 16.2.1
Firebase Storage SDK for Android updated to 16.0.5
Firebase Crashlytics SDK for Android updated to 2.9.6
Firebase Core SDK for iOS updated to 5.13.0
Firebase Crashlytics SDK for iOS updated to 3.12.0
We’ve just released hotfix for UE 4.21.
You can download it from GitHub repository on releases tab or your Sellfy dashboard (for Sellfy customers). Update also was submitted for UE4 Marketplace but it needs to wait for approval.
CHANGELOG:
Fixed SignInWithGoogle not working during second execution or next.
Removed unecessary WorldContextObject parameters.
Firebase Core SDK for Android updated to 16.0.6
Firebase Auth SDK for Android updated to 16.1.0
Firebase Analytics SDK for Android updated to 16.0.6
Firebase Remote Config SDK for Android updated to 16.1.2
Firebase Crashlytics SDK for Android updated to 2.9.8
Firebase Invites SDK for Android updated to 16.0.6
Firebase Performance Monitoring SDK for Android updated to 16.2.3
We’ve just released hotfix for UE 4.21.
You can download it from GitHub repository on releases tab or your Sellfy dashboard (for Sellfy customers). Update also was submitted for UE4 Marketplace but it needs to wait for approval.
CHANGELOG:
Updated Firebase SDKs for Android
Fixed ProGuard error when Shipping mode is enabled on Android
Great plugin. Exactly what I needed to connect my app to firebase. Easy to use, great support from , I got my answers in less than 5 minutes everytime I had an issue. Strongly recommend to anyone working on mobile games!