Giter Club home page Giter Club logo

react-native-radar's People

Contributors

andlum avatar ashalam avatar david-goodfellow avatar dependabot[bot] avatar fmonsalvo avatar gabrielalao avatar joeychik-radar avatar kennyhuradar avatar kiroskirin avatar lmeier avatar nickpatrick avatar noahtallen avatar rensamatar avatar russellcullen avatar tjulien avatar york-wei avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

react-native-radar's Issues

Radar.on(events) is getting called twice

I have the Radar.on('events', callback) set up to listen for enter and exit events from the user. One thing I've noticed is that the callback always seems to get triggered twice, no matter the context. I have noticed this in my logs for the app on the app store, as well as watching it in debug mode. I'm not sure why. Thankfully our code handles the situation, but I'd like to make sure it only gets called once, just to be safe.

react native 0.58.4

I'm trying to compile my app with 0.58.4 and other than upgrading the react native version (following usual upgrade steps) I've started seeing a compile problem using react-native run-ios

I've attempted removing node_modules, clearing the pods to no success.

What I'm seeing for errors seems to land in the RadarSDK around Folly and boost-react-native.

In file included from /Users/tony/alana-mobile/node_modules/react-native-radar/ios/RNRadar.m:4:
In file included from /Users/tony/alana-mobile/ios/build/Build/Products/Debug-iphonesimulator/include/React/RCTConvert.h:17:
/Users/tony/alana-mobile/ios/build/Build/Products/Debug-iphonesimulator/include/yoga/Yoga.h:11:10: warning: non-portable path to file '<Math.h>'; specified path differs in case from file name on disk [-Wnonportable-include-path]
#include <math.h>
^~~~~~~~
<Math.h>
In file included from /Users/tony/alana-mobile/node_modules/react-native-radar/ios/RNRadar.m:4:
In file included from /Users/tony/alana-mobile/ios/build/Build/Products/Debug-iphonesimulator/include/React/RCTConvert.h:17:
In file included from /Users/tony/alana-mobile/ios/build/Build/Products/Debug-iphonesimulator/include/yoga/Yoga.h:11:
In file included from ../../../ios/Pods/Folly/folly/math.h:26:
In file included from ../../../ios/Pods/boost-for-react-native/boost/tr1/tr1/limits:16:
In file included from ../../../ios/Pods/boost-for-react-native/boost/tr1/detail/config_all.hpp:43:
../../../ios/Pods/boost-for-react-native/boost/compatibility/cpp_c_headers/cstddef:10:1: error: unknown type name 'namespace'
namespace std {
^
../../../ios/Pods/boost-for-react-native/boost/compatibility/cpp_c_headers/cstddef:10:14: error: expected ';' after top level declarator

Android Dependency Error on 2.1.0

After upgrading to 2.1.0, I received the following error from the Android Dependency.

Could not find method implementation() for arguments [com.facebook.react:react-native:+] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

I know its not occurring in Radar Directly, but after the upgrade this error occured.

Heres the full build error

A problem occurred evaluating project ':react-native-radar'.
	at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:139)
	at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:109)
	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.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner.java:62)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	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:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	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:47)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
	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:80)
	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)
	at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:57)
	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:69)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:30)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:45)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)
	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:122)
	at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	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:122)
	at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	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:122)
	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:122)
	at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
	at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
	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)
Caused by: org.gradle.internal.exceptions.LocationAwareException: Build file '/Users/paclinkdeveloper/Documents/DriverRewardsApp/PaccarApp/node_modules/react-native-radar/android/build.gradle' line: 43
A problem occurred evaluating project ':react-native-radar'.
	at org.gradle.initialization.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:74)
	at org.gradle.initialization.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:47)
	at org.gradle.initialization.StackTraceSanitizingExceptionAnalyser.transform(StackTraceSanitizingExceptionAnalyser.java:30)
	at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:137)
	at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:109)
	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.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner.java:62)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	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:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	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:47)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
	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:80)
	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)
	at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:57)
	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:69)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:30)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:45)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)
	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:122)
	at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	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:122)
	at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	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:122)
	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:122)
	at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
	at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.api.GradleScriptException: A problem occurred evaluating project ':react-native-radar'.
	at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:92)
	at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$2.run(DefaultScriptPluginFactory.java:199)
	at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:77)
	at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:204)
	at org.gradle.configuration.BuildOperationScriptPlugin$1.run(BuildOperationScriptPlugin.java:61)
	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:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	at org.gradle.configuration.BuildOperationScriptPlugin.apply(BuildOperationScriptPlugin.java:58)
	at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:41)
	at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:26)
	at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34)
	at org.gradle.configuration.project.LifecycleProjectEvaluator.doConfigure(LifecycleProjectEvaluator.java:64)
	at org.gradle.configuration.project.LifecycleProjectEvaluator.access$100(LifecycleProjectEvaluator.java:34)
	at org.gradle.configuration.project.LifecycleProjectEvaluator$ConfigureProject.run(LifecycleProjectEvaluator.java:110)
	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:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:50)
	at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:666)
	at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:135)
	at org.gradle.api.internal.project.DefaultProjectAccessListener.evaluateProjectAndDiscoverTasks(DefaultProjectAccessListener.java:32)
	at org.gradle.api.internal.project.DefaultProjectAccessListener.beforeResolvingProjectDependency(DefaultProjectAccessListener.java:28)
	at org.gradle.api.internal.artifacts.dependencies.DefaultProjectDependency.beforeResolved(DefaultProjectDependency.java:100)
	at org.gradle.api.internal.artifacts.ivyservice.moduleconverter.dependencies.ProjectIvyDependencyDescriptorFactory.createDependencyDescriptor(ProjectIvyDependencyDescriptorFactory.java:41)
	at org.gradle.api.internal.artifacts.ivyservice.moduleconverter.dependencies.DefaultDependencyDescriptorFactory.createDependencyDescriptor(DefaultDependencyDescriptorFactory.java:36)
	at org.gradle.api.internal.artifacts.ivyservice.moduleconverter.dependencies.DefaultDependenciesToModuleDescriptorConverter.addDependencies(DefaultDependenciesToModuleDescriptorConverter.java:53)
	at org.gradle.api.internal.artifacts.ivyservice.moduleconverter.dependencies.DefaultDependenciesToModuleDescriptorConverter.addDependencyDescriptors(DefaultDependenciesToModuleDescriptorConverter.java:44)
	at org.gradle.api.internal.artifacts.ivyservice.moduleconverter.DefaultConfigurationComponentMetaDataBuilder.addConfigurations(DefaultConfigurationComponentMetaDataBuilder.java:37)
	at org.gradle.api.internal.artifacts.ivyservice.moduleconverter.DefaultRootComponentMetadataBuilder.toRootComponentMetaData(DefaultRootComponentMetadataBuilder.java:68)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.toRootComponentMetaData(DefaultConfiguration.java:714)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver$DefaultResolveContextToComponentResolver.resolve(DefaultArtifactDependencyResolver.java:143)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.resolve(DependencyGraphBuilder.java:104)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver.resolve(DefaultArtifactDependencyResolver.java:90)
	at org.gradle.api.internal.artifacts.ivyservice.DefaultConfigurationResolver.resolveGraph(DefaultConfigurationResolver.java:146)
	at org.gradle.api.internal.artifacts.ivyservice.ShortCircuitEmptyConfigurationResolver.resolveGraph(ShortCircuitEmptyConfigurationResolver.java:73)
	at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver.resolveGraph(ErrorHandlingConfigurationResolver.java:66)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$4.run(DefaultConfiguration.java:483)
	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:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphIfRequired(DefaultConfiguration.java:474)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveToStateOrLater(DefaultConfiguration.java:459)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getResolvedConfiguration(DefaultConfiguration.java:451)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getResolvedConfiguration(Unknown Source)
	at com.android.build.gradle.internal.DependencyManager.collectArtifacts(DependencyManager.java:484)
	at com.android.build.gradle.internal.DependencyManager.resolveConfiguration(DependencyManager.java:354)
	at com.android.build.gradle.internal.DependencyManager.resolveDependencies(DependencyManager.java:263)
	at com.android.build.gradle.internal.DependencyManager.resolveDependencies(DependencyManager.java:166)
	at com.android.build.gradle.internal.TaskManager.resolveDependencies(TaskManager.java:375)
	at com.android.build.gradle.internal.VariantManager.lambda$createVariantData$3(VariantManager.java:607)
	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)
	at com.android.build.gradle.internal.VariantManager.createVariantData(VariantManager.java:603)
	at com.android.build.gradle.internal.VariantManager.createVariantDataForProductFlavors(VariantManager.java:793)
	at com.android.build.gradle.internal.VariantManager.populateVariantDataList(VariantManager.java:469)
	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)
	at com.android.build.gradle.internal.VariantManager.createAndroidTasks(VariantManager.java:263)
	at com.android.build.gradle.BasePlugin.lambda$createAndroidTasks$6(BasePlugin.java:601)
	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)
	at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:596)
	at com.android.build.gradle.BasePlugin.lambda$null$4(BasePlugin.java:526)
	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)
	at com.android.build.gradle.BasePlugin.lambda$createTasks$5(BasePlugin.java:522)
	at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:91)
	at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:80)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)
	at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:230)
	at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:149)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
	at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:324)
	at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:234)
	at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:140)
	at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
	at com.sun.proxy.$Proxy26.afterEvaluate(Unknown Source)
	at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:76)
	at org.gradle.configuration.project.LifecycleProjectEvaluator.doConfigure(LifecycleProjectEvaluator.java:70)
	at org.gradle.configuration.project.LifecycleProjectEvaluator.access$100(LifecycleProjectEvaluator.java:34)
	at org.gradle.configuration.project.LifecycleProjectEvaluator$ConfigureProject.run(LifecycleProjectEvaluator.java:110)
	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:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:50)
	at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:666)
	at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:135)
	at org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:35)
	at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:62)
	at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:38)
	at org.gradle.initialization.DefaultGradleLauncher$ConfigureBuild.run(DefaultGradleLauncher.java:249)
	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:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	at org.gradle.initialization.DefaultGradleLauncher.configureBuild(DefaultGradleLauncher.java:167)
	at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:126)
	... 62 more
Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method implementation() for arguments [com.facebook.react:react-native:+] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
	at org.gradle.internal.metaobject.AbstractDynamicObject.methodMissingException(AbstractDynamicObject.java:179)
	at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:87)
	at build_16m0f0vm2fn1qln2ci32numyi$_run_closure3.doCall(/Users/paclinkdeveloper/Documents/DriverRewardsApp/PaccarApp/node_modules/react-native-radar/android/build.gradle:43)
	at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:71)
	at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:160)
	at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:106)
	at org.gradle.api.internal.project.DefaultProject.dependencies(DefaultProject.java:1161)
	at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:479)
	at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:191)
	at org.gradle.internal.metaobject.CompositeDynamicObject.tryInvokeMethod(CompositeDynamicObject.java:98)
	at org.gradle.internal.metaobject.MixInClosurePropertiesAsMethodsDynamicObject.tryInvokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:30)
	at org.gradle.groovy.scripts.BasicScript$ScriptDynamicObject.tryInvokeMethod(BasicScript.java:134)
	at org.gradle.internal.metaobject.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:160)
	at org.gradle.groovy.scripts.BasicScript.invokeMethod(BasicScript.java:83)
	at build_16m0f0vm2fn1qln2ci32numyi.run(/Users/paclinkdeveloper/Documents/DriverRewardsApp/PaccarApp/node_modules/react-native-radar/android/build.gradle:42)
	at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:90)
	... 160 more

iOS Manual Link doesn't work

It's related to #42

This solution doesn't work for CI, because it installs RNRadar Library again and without configured Framework Search Path.

Fast solution can be adding by default ${SRCROOT}/../../../ios to RNRadar target framework search path and we can have inside our ios folder the RadarSDK.framework

Gravity forms extension not locking download files

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Metadata (please complete the following information):

  • React Native Radar Version: [e.g. 2.1.2]
  • Platform: [e.g. iOS, Android, both]
  • Device [e.g. Pixel 2 XL, iPhone X]
  • Device OS Version [e.g. Android 9.0 (Pie), iOS 12]

Additional context
Add any other context about the problem here.

Allow access to "alternate places" in react native

So far, radar looks really promising! However, it doesn't seem as if the react native bridge supports the ability to see alternate places.

In Radar's documentation for iOS and Android you see the following code: Radar.acceptEventId(event._id, verifiedPlaceId: event.alternatePlaces[0]._id). This indicates that the native SDK event includes an alternatePlaces array. However, in react-native, when listening for events, I see the following data for the event:
entered_place

However, when I view this event online (I verified that the id is the same), I see that it does show alternate places in the portal:
radar online

As you can see in the screenshot, these aren't passed to my react native application's event handler. (See below for code). log is a function I made to display the event data to me as I test it out.

    Radar.on('events', (result: RadarOnEvent) => {
      // do something with result.events, result.user
      result.events.forEach((event: RadarEvent) => {
        log('EVENT: ' + event.type, event)
      })
    })

Interestingly, in the index.js for the react-native-radar module, there is code which allows you to accept or reject an event ID.

I'm not sure if it's a bug or if I haven't configured it properly, but since all the events seem to be firing correctly, I figured I would ask about it here.

Functions passed to Radar.on('location') not firing in background but get updates on dashboard

Edit: this happens because my app uses ExpoKit, which Radar is currently incompatible with.

Describe the bug
The function I pass to Radar.on('location') only runs in the foreground - when it's foregrounded, I get requests to my remote API, however, in the background, I will not, despite still receiving events on the dashboard. The functions are in the global scope of my project.

To Reproduce
Steps to reproduce the behavior:
Not sure how to reproduce, but here's my setup (with some stuff omitted for clarity)

export async function initializeRadar(){
    Radar.trackOnce().then((result) => {
        console.log('trackonce', result)
    }).catch((err) => {
        console.log('trackerror', err)
    });
    Radar.startTracking({
        priority: 'responsiveness', // // use 'efficiency' to avoid Android vitals bad behavior thresholds (ignored on iOS)
        sync: 'possibleStateChanges', // use 'all' to sync all location updates ('possibleStateChanges' recommended)
        offline: 'replayStopped' // use 'replayOff' to disable offline replay ('replayStopped' recommended)
    })
}

Radar.on('location', async result => {
    console.log('location result', result)
    const res = await Promise.all([AsyncStorage.getItem('userToken'), AsyncStorage.getItem('username')]), token = res[0], username = res[1]
    try {
        if (username == 'derek') Notifications.presentLocalNotificationAsync({ title: 'hey', body: `new location update`, })
        let geofences = await api.sendLocation({ coords: result.location, token })
        console.log('geofences', geofences)
    } catch (error) {
        console.log('axios error', error)
        Sentry.logMessage(new Error(error))
    }
})

Expected behavior
The function to generate a push notification as well as make a network request to my API like it does in the foreground.

Screenshots
If applicable, add screenshots to help explain your problem.
Latest event on the dashboard, latest received event on my api (last time the app was open)

Metadata:

  • React Native Radar Version: 2.1.8
  • Platform: iOS
  • Device: iPhone X
  • Device OS Version: iOS 12.1

Additional context
My app is an ejected ExpoKit app.

[Feature Request] Improved Categories for Radar Places

Currently, when looking at a place's categories, you see a list like this: travel-transportation, transportation-terminal, airport, train-station (this is for the Portland International Airport, Radar ID: 59c28b488be4c5ce940ba105).

In our app, we basically try to determine the "most relevant" category for a place, and then match that category to certain game content. This allows users to play our travel game. One thing that's challenging with these categories is that there isn't a clear way to discover which category is the most important. For instance, in the above example, I would expect airport to be the most relevant category to a user.

The pattern I've noticed with the categories is basically top of the hierarchy to bottom of the hierarchy. So, this example follows this pattern: 1, 2, 3, 3. Airport and train-station are on the same level of the category hierarchy. What works a lot of the time is choosing the last category which is at deeper level than the next category. in this case, that would be "train-station", and for a pattern like 1, 2, 1, 2, 3, that would be the first occurring 2. This works okay for a lot of cases.

What would be really nice is to see a "primary" category for a place - for instance the primary category for the Portland Airport would be "airport". While testing our app with Foursquare's location data, this worked really well, since their category list includes a boolean "primary" key which indicates which category we should use as the most relevant category to a place.

That's the first part of this request, the second being better linking to Facebook categories (or whichever provider we choose). The main reason for this is our "nearby places" feature, where the user can see which nearby places they can go to earn points in the game. Since Radar doesn't have this feature built into the SDK, we do a request to Facebook Graph API to search for places near our coordinates. The facebook place category list looks like this (Flow type format):

  category_list: Array<{
    id: string,
    name: string
  }>

There are a couple of differences from the Radar place category list here.

  1. It seems to be sorted with the "most relevant" category first.
  2. There isn't an easy way to link the facebook category back to the Radar category ID. I basically take the name, make it all lowercase, and replace the whitespace with dashes. So "Fast Food" would become "fast-food". Then I link that category "ID" back to the Radar category IDs and match it to our game content.

These approaches seem to work alright, but they aren't quite ideal for our use case. If you could give us some guidance on this, it would be much appreciated! I'm sure one part of it might be the possibility of future place providers. Finally, thanks for developing this awesome tool and for all the hard-work you guys put into the project! :)

Build error with Android SDK 28 alpha

I cannot get a working build, I get the following error:

:react-native-radar:processDebugAndroidTestResources
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:fontVariationSettings
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:ttcIndex

Failed to execute aapt
com.android.ide.common.process.ProcessException: Failed to execute aapt
	at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:796)
	at com.android.build.gradle.tasks.ProcessAndroidResources.invokeAaptForSplit(ProcessAndroidResources.java:551)
	at com.android.build.gradle.tasks.ProcessAndroidResources.doFullTaskAction(ProcessAndroidResources.java:285)
	at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:109)
	at sun.reflect.GeneratedMethodAccessor496.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
	at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:173)
	at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
	at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:121)
	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.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)
Caused by: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Error while executing process /Users/jeroenb/Library/Android/sdk/build-tools/26.0.2/aapt with arguments {package -f --no-crunch -I /Users/jeroenb/Library/Android/sdk/platforms/android-26/android.jar -M /Users/jeroenb/Work/jackjoe/butikk/node_modules/react-native-radar/android/build/intermediates/manifest/androidTest/debug/AndroidManifest.xml -S /Users/jeroenb/Work/jackjoe/butikk/node_modules/react-native-radar/android/build/intermediates/res/merged/androidTest/debug -m -J /Users/jeroenb/Work/jackjoe/butikk/node_modules/react-native-radar/android/build/generated/source/r/androidTest/debug -F /Users/jeroenb/Work/jackjoe/butikk/node_modules/react-native-radar/android/build/intermediates/res/androidTest/debug/resources-debugAndroidTest.ap_ -0 apk --output-text-symbols /Users/jeroenb/Work/jackjoe/butikk/node_modules/react-native-radar/android/build/intermediates/symbols/androidTest/debug --no-version-vectors}
	at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503)
	at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:482)
	at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79)
	at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:794)
	... 47 more
Caused by: com.android.ide.common.process.ProcessException: Error while executing process /Users/jeroenb/Library/Android/sdk/build-tools/26.0.2/aapt with arguments {package -f --no-crunch -I /Users/jeroenb/Library/Android/sdk/platforms/android-26/android.jar -M /Users/jeroenb/Work/jackjoe/butikk/node_modules/react-native-radar/android/build/intermediates/manifest/androidTest/debug/AndroidManifest.xml -S /Users/jeroenb/Work/jackjoe/butikk/node_modules/react-native-radar/android/build/intermediates/res/merged/androidTest/debug -m -J /Users/jeroenb/Work/jackjoe/butikk/node_modules/react-native-radar/android/build/generated/source/r/androidTest/debug -F /Users/jeroenb/Work/jackjoe/butikk/node_modules/react-native-radar/android/build/intermediates/res/androidTest/debug/resources-debugAndroidTest.ap_ -0 apk --output-text-symbols /Users/jeroenb/Work/jackjoe/butikk/node_modules/react-native-radar/android/build/intermediates/symbols/androidTest/debug --no-version-vectors}
	at com.android.build.gradle.internal.process.GradleProcessResult.buildProcessException(GradleProcessResult.java:73)
	at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:48)
	at com.android.builder.internal.aapt.AbstractProcessExecutionAapt$1.onSuccess(AbstractProcessExecutionAapt.java:78)
	at com.android.builder.internal.aapt.AbstractProcessExecutionAapt$1.onSuccess(AbstractProcessExecutionAapt.java:74)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1237)
	at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:911)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:822)
	at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:664)
	at com.google.common.util.concurrent.SettableFuture.set(SettableFuture.java:48)
	at com.android.build.gradle.internal.process.GradleProcessExecutor$1.run(GradleProcessExecutor.java:58)
Caused by: org.gradle.process.internal.ExecException: Process 'command '/Users/jeroenb/Library/Android/sdk/build-tools/26.0.2/aapt'' finished with non-zero exit value 1
	at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:380)
	at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:46)
	... 9 more

I looked around on the net, seems to be related to a new build Android support lib version (?) that was released this month. I tried several solutions but it keeps failing. The most notable solution should be to add this in the build.gradle

configurations.all {
resolutionStrategy.force 'com.android.support:support-v4:26+'
}

But no success...

iOS Build failing when linking through pods (fails to compile the RNRadar test files)

Describe the bug
I switched to linking react-native-radar through pods:

...
pod 'react-native-radar', :path => '../node_modules/react-native-radar'
...

I'm unsure if switching back to linking manually will fix this issue, but I'll try that next.

After a pod install (and a pod update for some other things), the build is failing. It says: XCTest/XCTest.h file not found. I can fix this error by adding s.framework="XCTest" to the bottom of the react-native-radar.podspec file. (And running pod install again after that.) However, once I fix that, I get a new error: 'OCMock/OCMock.h' file not found. These both happen in the same file:

react-native-radar/Carthage/Checkouts/ocmock/Examples/iOS9Example/iOS9ExampleTests/iOS9ExampleTests.m

For some reason, it is trying to build the RNRadar Xcode tests when I try to a development build for my own app. And, for some reason, the ocmock dependency includes a ton of old "example" projects which are getting compiled while building my own app. 🤔Any clues?

To Reproduce
Link the library through pods, run pod install, and try to compile.

Expected behavior
The build should work, and it shouldn't build old example projects for third party dependencies.

Metadata (please complete the following information):

  • React Native Radar Version: 2.1.5
  • React Native Version: 0.58.3
  • Platform: iOS
  • Device: n/a
  • Device OS Version: n/a

Permissions on android

Hi,

I've got radar up and working in both iOS and Android but I'm wondering about about asking for permissions on android. When I updated my app on iOS it asked for permissions but with the same code it didn't ask for permission in Android. When I turned on location manually for the app it worked just fine.

Is there anything in particular I need to do to get the permissions in android? I followed the sdk.

Tony

Tracking stops on resume

Location tracking appears to be working when the app is initially started in the foreground and continues to track when put in the background, however, when the app is resumed in the foreground, tracking stops all together both in the foreground and background. I have listeners set up for events, locations and errors, and do not see any errors coming through. Any thoughts?

* react version - 0.55.4
* react-native-radar - 2.0.4

The callback trackOnce() exists in module RNRadar, but only one callback may be registered to a function in a native module.

Describe the bug
trackOnceWithCompletionHandler is calling its callback more than once and it is not allowed to resolve Promise twise or more

To Reproduce

  1. tracking has been started already
  2. call trackOnce it will result with Promised callback
  3. a few seconds later it will try to resolve again
  4. See error

Expected behavior
it needs to be called once

Screenshots
image-1
image-2

Metadata (please complete the following information):

  • React Native Radar Version: [e.g. 2.1.2]
  • Platform: [both]
  • Device [iPhone X]
  • Device OS Version [12]

Checking for "Always Allow" location permission in iOS

I recently integrated Radar into my app and it's been working great. My app only needs background tracking, so it is important that I be able to check if the user chose "Always Allow" in their iOS permissions.

From what I can tell, the getPermissionsStatus() method will return 'GRANTED' regardless of whether the user chose Always Allow, or Allow Only When Using.

Is it possible to make this more detailed so that we can determine what level of permissions the user has granted?

Can't use with React Native Push Notifications

Describe the bug
I'm not able to use React Native Push Notifications or React Native Firebase with Radar. As soon as I install Radar apps keeps on crashing. SOme conflict in between these apps maybe.

To Reproduce
Steps to reproduce the behavior:

  1. Install React Native Push Notifications
  2. Then Install Radar
  3. After compiling the app starts stopping on react-native run-android

Expected behavior
Both apps should work together without crashing the app. Both are working separately but not together.

Metadata (please complete the following information):

  • React Native Radar Version: 2.1.2
  • Platform: Android
  • Device : All
  • Device OS Version Android 8.1Pie

Multiple Dex Files

Sorry for posting again, hopefully I can get some guidance, but I'll still be looking into this.

Upon overriding the ERROR: In <declare-styleable> FontFamilyFont bug with

compile(project(':react-native-push-notification')) {
    exclude group: "com.google.android.gms"
}

A new error occurs:

Dex: Error converting bytecode to dex:
Cause: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/zzcfo;
    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/zzcfo;
    
com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/zzcfo;
        at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)
        at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)
        at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)
        at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
        at com.android.dx.merge.DexMerger.merge(DexMerger.java:198)
        at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)
        at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)
        at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
        at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

I have confirmed that this does only happen when react-native-radar is installed. It seems like a normal multiple dex issue, so I updated my build.gradle with the following to exclude com.google.android.gms

compile(project(':react-native-radar')) {
    exclude group: 'com.google.android.gms'
    exclude module: 'support-v4'
}

Upon doing this the app compiles, but crashes without any errors. Running adb logcat did not provide any useful information to help debug the cause.

Is there any reason that excluding gms from this project would cause the application to crash if I already have a version in use?

Thanks

Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference

Platform

Android

Radar version

Android : 2.0.4
React-Native: 1.0.17
Full error message:

Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference setPlacesProvider _RadarSettings.java:162 setPlacesProvider _Radar.java:110 setPlacesProvider Radar.java:132 setPlacesProvider RNRadarModule.java:47 invoke Method.java invoke JavaMethodWrapper.java:372 invoke JavaModuleWrapper.java:160 run NativeRunnable.java handleCallback Handler.java:739 dispatchMessage Handler.java:95 dispatchMessage MessageQueueThreadHandler.java:29 loop Looper.java:148 run MessageQueueThreadImpl.java:192 run Thread.java:818
I've been getting this error on Android for the last couple of days. As you know we had to downgrade the react-native-radar to make it work. Do we have to downgrade the Android sdk too?

Typescript support

I imagine they've already been discussed so just count this as my vote for Typescript typings.

NativeModules.RNRadar is undefined

Describe the bug
When running on the iOS emulator any Radar function produces a "NativeModules.RNRadar is undefined" error. I have followed the SDK instructions for iOS. I have not installed for Android.

The app, which is just the basic rn template app, runs fine until I call Radar.

To Reproduce
Steps to reproduce the behavior:

  1. Start clean project using rn typescript template.
  2. Follow SDK installation instructions from Radar docs.
  3. Install RN package and follow installation instructions.
  4. Call Radar from App.tsx in componentDidMount.

Expected behavior
Radar functions to be available.

Screenshots
screen shot 2018-12-16 at 9 30 55 pm
screen shot 2018-12-16 at 9 31 37 pm
screen shot 2018-12-16 at 9 32 36 pm

Metadata (please complete the following information):
"react-native": "0.57.8",
"react-native-radar": "^2.1.2"
emulator XR
xCode 10

Update:
In the Plist screenshot you'll see an empty string for one of the privacy settings. I put in a string and it didn't change anything.

The errors in AppDelegate don't have an effect at runtime.

setPlacesProvider doesn't work

Describe the bug
When I try to set the places provider in Android it fails to compile.

To Reproduce
Steps to reproduce the behavior:
put in radar:

import io.radar.sdk.Radar;
...
  @Override
  public void onCreate() {
Radar.initialize(LIVE_RADAR_KEY);
Radar.setPlacesProvider("facebook");
  }

see the error output:

> Task :app:compileDebugJavaWithJavac FAILED
/Users/stefan-work/repos/volta/mobile/android/app/src/main/java/com/volta/android/MainApplication.java:125: error: incompatible types: String cannot be converted to RadarPlacesProvider
    Radar.setPlacesProvider("facebook");
                            ^

I also tried adding in RadarPlacesProvider to no avail:

import io.radar.sdk.Radar;
...
  @Override
  public void onCreate() {
Radar.initialize(LIVE_RADAR_KEY);
Radar.setPlacesProvider(RadarPlacesProvider.FACEBOOK);
  }

error output:

> Task :app:compileDebugJavaWithJavac FAILED
/Users/stefan-work/repos/volta/mobile/android/app/src/main/java/com/volta/android/MainApplication.java:125: error: cannot find symbol
    Radar.setPlacesProvider(RadarPlacesProvider.FACEBOOK);
                            ^
  symbol:   variable RadarPlacesProvider
  location: class MainApplication

Expected behavior
setting the places provider should compile / work

Metadata (please complete the following information):

  • React Native Radar Version: 2.1.8
  • Platform: Android
  • Device any
  • Device OS Version any

[Feature Request] Sort Catageories on the React Native Project

On the app, I wanted to sort certain categories on the app. I wanted to populate all the categories on the dashboard. When the user is able to sort by certain categories, it should show the sorted results. Is there a method or even an API callback parameter that will allow the sorted results from the Alternative places?

Need to leave the geofence and re-enter it for it to be triggered

I am trying to use the Radar API I want the app to refresh nearby places results as the user moves.
I have set up a geofence that is triggered every time the user loads my app and creates a circular geofence around their location. However, as it stands events will not be triggered on the geofence unless the user leaves the area and then re-enters. Or if the app is reloaded. Is there any way to trigger a user.entered_geofence event every time a new Geofence is set up? Here's my api call

export const createNewGeofence = (location) => {
  return new Promise((resolve, reject) => {
    fetch(geofenceURL, {
      method: 'post',
      headers: {
        'Authorization': testApiKey,
        'Accept': 'application/json',
        'Content-Type': 'application/json'

      },
      body: JSON.stringify({
        description: description,
        type: type,
        radius: radius,
        userid: userid,
        coordinates: location,
        enabled: enabled
        // latitude, longitude
      })
    }).then((response) => {
      if (response.status === 200) {
        resolve(response.json())
      } else {
        reject(response.statusText ? response.statusText : response.status)
      }
    }).catch(error => error)
  })
}

Persistent UNKNOWN_ERROR after 2-3 minutes of trackOnce location updates

I need a finer grained GPS location so instead of using background tracking I call trackOnce every 3-5 seconds to get the most recent coordinates of a users device. During testing on a real device while walking around outside, after about 2-3 minutes or 60 updates trackOnce starts throwing UNKNOWN_ERROR updates. It's always right around update number 60.

The error is persistent even through app restarts. I have to delete the app entirely than build and run again to get the error to go aways.

Steps to reproduce the behavior:

  1. Start clean project using rn typescript template.
  2. Follow SDK installation instructions from Radar docs.
  3. Install RN package and follow installation instructions.
  4. Call Radar from App.tsx in componentDidMount. =>
setInterval(() => {
      Radar.trackOnce().then((result: any) => {
        console.log(result)
      }).catch((err: any) => {
        console.log(err)
      });
    }, 3000)

Expected behavior
A normal location update on calling trackOnce.

"react-native": "0.57.8",
"react-native-radar": "^2.1.2"
emulator XR
xCode 10

RnRadarReceiver Crash on Android (In Background?)

We've deployed an update to our internal testers with the new Radar package. We have crashlytics enabled, so I get detailed crash reports for apps in release mode. I just got two reports for a crash with RNRadarReceiver.java. The error is: Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.content.BroadcastReceiver$PendingResult.finish()' on a null object reference

Here is the stack trace:

io.radar.react.RNRadarReceiver$1.onReactContextInitialized (RNRadarReceiver.java:38)
com.facebook.react.ReactInstanceManager$6.run (ReactInstanceManager.java:984)
android.os.Handler.handleCallback (Handler.java:751)
android.os.Handler.dispatchMessage (Handler.java:95)
android.os.Looper.loop (Looper.java:154)
android.app.ActivityThread.main (ActivityThread.java:6123)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:867)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:757)

The device is:

Brand: motorola
Model: Moto G (5) Plus
RAM free: 911.12 MB
Disk free: 22.79 GB

The device reported that the app was in the background when it happened. Any ideas?

Flow Support

It would be really nice to have flow support for this library to see typings as we work!

Android app logs only first Radar.on('location') event with react-native app

Describe the bug
At this time I can't send location to backend service after the first time. With same code iOS logging more stops but even with iOS logging works not clear. Some points of stops is not logging, some points logged while moving, some points logging properly.

It's to hard to follow the docs, when they abstract the way we can use Location from Google Play Services to the docs. I can't understand why I need to make Firebase app at google account for getting google-services.json file for using Location which are not based on Firebase.

To Reproduce
Steps to reproduce the behavior:
I'll try to add here everything I did with native part of Android part.

  1. I'd started with installing react-native-radar and launching react-native link react-native-radar
  2. Then make some changes in files (some of them are the result of react-native-link

android/app/build.gradle

dependencies {
      ...
+    implementation project(':react-native-radar')
+    implementation 'io.radar:sdk:2.1.+'
      ...
}
...
+// For working with 28 version incompatibility https://stackoverflow.com/a/49350617/6717050
+configurations.all {
+   resolutionStrategy {
+        force 'com.android.support:support-v4:27.1.0'
+    }
+} 

android/app/src/main/java/com/myapp/MainApplication.java

...
+ import io.radar.sdk.Radar;
+ import io.radar.react.RNRadarPackage;

public class MainApplication extends MultiDexApplication implements ReactApplication {
  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
    ...
    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
        new MainReactPackage(),
+      new RNRadarPackage(),
    }
    ...
    @Override
    public void onCreate() {
      super.onCreate();
+    Radar.initialize(< RADAR KEY FOR SURE WITHOUT MISTAKE >);
    }
  }
}

android/settings.gradle

+include ':react-native-radar'
+project(':react-native-radar').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-radar/android')

android/app/src/main/AndroidManifest.xml

    ...
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    ...

React-Native JS Code:
app.js

const store = configureStore(); // Create redux store

Radar.on('location', ({ location }) => {
    store.dispatch(sendGeoTrackingData(location)); // This action send location data to server, it works
});

Start.js component - Main screen after user logged in the app. On logout Radar.stopTracking() executes.

...
const startTrackingWithCheck = async () => {
  const status = await Radar.getPermissionsStatus();
  if (status === 'GRANTED') {
    Radar.startTracking();
    clearInterval(startTrackingInterval);
  }
};

const startTracking = async (userId) => {
  Radar.setPlacesProvider('none');
  Radar.setUserId(String(userId));
  const status = await Radar.getPermissionsStatus();
  if (status !== 'GRANTED') {
    Radar.requestPermissions(true);
    startTrackingInterval = setInterval(startTrackingWithCheck, 5000);
  } else {
    Radar.startTracking();
  }
};

class Start extends Component {
...
  componentDidMount() {
    const { userId } = this.props;
    startTracking(userId);
  }
...
}

This code works exactly the same as the code (log only first point and it was the last), that I've added below to be more precise with Android steps in docs.

Radar uses the Play Services Location library. If you haven't already configured your project for Play Services, follow the instructions here.

Okay, lets add Location Google Play Services library (but it works without it too);

android/build.gradle

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4'
+      classpath 'com.google.gms:google-services:4.2.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

android/app/build.gradle
Before I've generated google-services.json I've created and app in Firebase and in docs they advice to add firebase-core to the dependencies :\ Ofcourse I would be happy to remove it, but without Firebase I can't get proper google-services.json.

    dependencies {
        ...
+     implementation 'com.google.firebase:firebase-core:16.0.1'
+     implementation 'com.google.android.gms:play-services-location:16.0.0' 
        ...
    }
// Very last line
apply plugin: 'com.google.gms.google-services' // It can't works without google-services.json file

Expected behavior
Radar.on('location', callback) logs location after every stop

Metadata (please complete the following information):

  • React Native Radar Version: [2.1.7]
  • React Native: [0.57.3]
  • Platform: [Android]
  • Device [Pixel, Emulator with enabled Google Play Services]
  • Device OS Version [Android 9.0 (Pie)]

I would appreciate any help with Radar setup, because my team is on the edge of giving up with attempting to add Radar to RN app.

Lots of "Error: Network"s

I'm not sure how to debug this one. Essentially, I'm getting a lot of errors from Radar when trying to use trackOnce. Generally, it works ok. However, it seems that about 40% of the time, I receive an error: network result when trying to receive the current coordinates. Do you think it could be caused by trying to call it again while a call is already in progress?

Fatal Exception: java.lang.NoSuchMethodError

Hi, sorry to bother you again.

I think that perhaps the hack that we did in 15 has caused a new issue on some devices. The main problem lies on _Radar.java line 968. I can't replicate this myself, but the crashlytics report is as follows:

# Crashlytics - plaintext stacktrace downloaded by Jackson Morgan at Sat, 07 Apr 2018 12:49:12 GMT
# URL: https://fabric.io/gauge-insights/android/apps/com.gauge/issues/5ac7fa8036c7b23527bf967d?time=last-seven-days/sessions/5AC8BA3B01760001261975CB7BB15562_DNE_0_v2
# Organization: Gauge Insights
# Platform: android
# Application: Gauge
# Version: 1.2.10 (25)
# Bundle Identifier: com.gauge
# Issue #: 32
# Issue ID: 5ac7fa8036c7b23527bf967d
# Session ID: 5AC8BA3B01760001261975CB7BB15562_DNE_0_v2
# Date: 2018-04-07T12:31:00Z
# OS Version: 6.0.1
# Device: Galaxy S5
# RAM Free: 33.5%
# Disk Free: 12%

#0. Crashed: main
       at com.google.android.gms.internal.zzchq.createFromParcel(Unknown Source)
       at com.google.android.gms.internal.zzchp.zza(Unknown Source)
       at com.google.android.gms.location.GeofencingEvent.fromIntent(Unknown Source)
       at com.onradar.sdk._Radar.onHandleIntent(_Radar.java:968)
       at com.onradar.sdk._RadarReceiver.onReceive(_RadarReceiver.java:15)
       at android.app.ActivityThread.handleReceiver(ActivityThread.java:3634)
       at android.app.ActivityThread.access$2000(ActivityThread.java:221)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1876)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:158)
       at android.app.ActivityThread.main(ActivityThread.java:7224)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

--

Fatal Exception: java.lang.NoSuchMethodError: No static method zza(Landroid/os/Parcel;)I in class Lcom/google/android/gms/internal/zzbgm; or its super classes (declaration of 'com.google.android.gms.internal.zzbgm' appears in /data/app/com.gauge-1/base.apk)
       at com.google.android.gms.internal.zzchq.createFromParcel(Unknown Source)
       at com.google.android.gms.internal.zzchp.zza(Unknown Source)
       at com.google.android.gms.location.GeofencingEvent.fromIntent(Unknown Source)
       at com.onradar.sdk._Radar.onHandleIntent(_Radar.java:968)
       at com.onradar.sdk._RadarReceiver.onReceive(_RadarReceiver.java:15)
       at android.app.ActivityThread.handleReceiver(ActivityThread.java:3634)
       at android.app.ActivityThread.access$2000(ActivityThread.java:221)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1876)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:158)
       at android.app.ActivityThread.main(ActivityThread.java:7224)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

#0. Crashed: main
       at com.google.android.gms.internal.zzchq.createFromParcel(Unknown Source)
       at com.google.android.gms.internal.zzchp.zza(Unknown Source)
       at com.google.android.gms.location.GeofencingEvent.fromIntent(Unknown Source)
       at com.onradar.sdk._Radar.onHandleIntent(_Radar.java:968)
       at com.onradar.sdk._RadarReceiver.onReceive(_RadarReceiver.java:15)
       at android.app.ActivityThread.handleReceiver(ActivityThread.java:3634)
       at android.app.ActivityThread.access$2000(ActivityThread.java:221)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1876)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:158)
       at android.app.ActivityThread.main(ActivityThread.java:7224)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

#1. main
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
       at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:418)
       at java.util.concurrent.FutureTask.get(FutureTask.java:175)
       at com.crashlytics.android.core.CrashlyticsBackgroundWorker.submitAndWait(CrashlyticsBackgroundWorker.java:41)
       at com.crashlytics.android.core.CrashlyticsController.handleUncaughtException(CrashlyticsController.java:285)
       at com.crashlytics.android.core.CrashlyticsController$5.onUncaughtException(CrashlyticsController.java:269)
       at com.crashlytics.android.core.CrashlyticsUncaughtExceptionHandler.uncaughtException(CrashlyticsUncaughtExceptionHandler.java:30)
       at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
       at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)

#2. Crashlytics Exception Handler1
       at dalvik.system.VMStack.getThreadStackTrace(VMStack.java)
       at java.lang.Thread.getStackTrace(Thread.java:580)
       at java.lang.Thread.getAllStackTraces(Thread.java:522)
       at com.crashlytics.android.core.CrashlyticsController.writeSessionEvent(CrashlyticsController.java:1114)
       at com.crashlytics.android.core.CrashlyticsController.writeFatal(CrashlyticsController.java:852)
       at com.crashlytics.android.core.CrashlyticsController.access$400(CrashlyticsController.java:59)
       at com.crashlytics.android.core.CrashlyticsController$6.call(CrashlyticsController.java:292)
       at com.crashlytics.android.core.CrashlyticsController$6.call(CrashlyticsController.java:285)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:75)
       at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:30)
       at java.lang.Thread.run(Thread.java:818)

#3. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:510)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1036)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#4. FinalizerDaemon
       at java.lang.Object.wait(Object.java)
       at java.lang.Object.wait(Object.java:423)
       at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:101)
       at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:72)
       at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:200)
       at java.lang.Thread.run(Thread.java:818)

#5. AsyncTask #1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1036)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#6. AsyncTask #4
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1036)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#7. AsyncTask #3
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1036)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#8. HeapTaskDaemon
       at dalvik.system.VMRuntime.runHeapTasks(VMRuntime.java)
       at java.lang.Daemons$HeapTaskDaemon.run(Daemons.java:370)
       at java.lang.Thread.run(Thread.java:818)

#9. pool-3-thread-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2053)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:806)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1036)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#10. pool-6-thread-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2053)
       at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:435)
       at com.google.android.gms.common.zza.zza(Unknown Source)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown Source)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.start(Unknown Source)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo(Unknown Source)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.facebook.internal.Utility.invokeMethodQuietly(Utility.java:804)
       at com.facebook.internal.AttributionIdentifiers.getAndroidIdViaReflection(AttributionIdentifiers.java:117)
       at com.facebook.internal.AttributionIdentifiers.getAndroidId(AttributionIdentifiers.java:75)
       at com.facebook.internal.AttributionIdentifiers.getAttributionIdentifiers(AttributionIdentifiers.java:178)
       at com.facebook.appevents.AppEventCollection.getSessionEventsState(AppEventCollection.java:85)
       at com.facebook.appevents.AppEventCollection.addEvent(AppEventCollection.java:55)
       at com.facebook.appevents.AppEventQueue$4.run(AppEventQueue.java:99)
       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#11. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:510)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1036)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#12. Crashlytics Report Uploader
       at java.lang.Thread.sleep(Thread.java)
       at java.lang.Thread.sleep(Thread.java:1031)
       at java.lang.Thread.sleep(Thread.java:985)
       at com.crashlytics.android.core.ReportUploader$Worker.attemptUploadWithRetry(ReportUploader.java:188)
       at com.crashlytics.android.core.ReportUploader$Worker.onRun(ReportUploader.java:173)
       at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:30)
       at java.lang.Thread.run(Thread.java:818)

#13. Measurement Worker
       at java.lang.Object.wait(Object.java)
       at java.lang.Object.wait(Object.java:423)
       at com.google.android.gms.internal.zzcki.run(Unknown Source)

#14. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:510)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1036)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#15. AsyncTask #5
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2053)
       at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:435)
       at com.google.android.gms.common.zza.zza(Unknown Source)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown Source)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.start(Unknown Source)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo(Unknown Source)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.facebook.internal.Utility.invokeMethodQuietly(Utility.java:804)
       at com.facebook.internal.AttributionIdentifiers.getAndroidIdViaReflection(AttributionIdentifiers.java:117)
       at com.facebook.internal.AttributionIdentifiers.getAndroidId(AttributionIdentifiers.java:75)
       at com.facebook.internal.AttributionIdentifiers.getAttributionIdentifiers(AttributionIdentifiers.java:178)
       at com.facebook.FacebookSdk.publishInstallAndWaitForResponse(FacebookSdk.java:569)
       at com.facebook.FacebookSdk$4.run(FacebookSdk.java:557)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#16. Thread-12782
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2053)
       at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:435)
       at com.google.android.gms.common.zza.zza(Unknown Source)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown Source)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.start(Unknown Source)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo(Unknown Source)
       at com.onradar.sdk._RadarSettings$1.run(_RadarSettings.java:264)
       at java.lang.Thread.run(Thread.java:818)

#17. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:510)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1036)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#18. ReferenceQueueDaemon
       at java.lang.Object.wait(Object.java)
       at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:162)
       at java.lang.Thread.run(Thread.java:818)

#19. Thread-12770
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2053)
       at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:435)
       at com.google.android.gms.common.zza.zza(Unknown Source)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown Source)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.start(Unknown Source)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo(Unknown Source)
       at java.lang.reflect.Method.invoke(Method.java)
       at io.fabric.sdk.android.services.common.AdvertisingInfoReflectionStrategy.getInfo(AdvertisingInfoReflectionStrategy.java:106)
       at io.fabric.sdk.android.services.common.AdvertisingInfoReflectionStrategy.getAdvertisingId(AdvertisingInfoReflectionStrategy.java:76)
       at io.fabric.sdk.android.services.common.AdvertisingInfoReflectionStrategy.getAdvertisingInfo(AdvertisingInfoReflectionStrategy.java:66)
       at io.fabric.sdk.android.services.common.AdvertisingInfoProvider.getAdvertisingInfoFromStrategies(AdvertisingInfoProvider.java:118)
       at io.fabric.sdk.android.services.common.AdvertisingInfoProvider.access$000(AdvertisingInfoProvider.java:28)
       at io.fabric.sdk.android.services.common.AdvertisingInfoProvider$1.onRun(AdvertisingInfoProvider.java:70)
       at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:30)
       at java.lang.Thread.run(Thread.java:818)

#20. pool-2-thread-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:810)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:970)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1278)
       at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:203)
       at com.google.android.gms.tasks.Tasks$zza.await(Unknown Source)
       at com.google.android.gms.tasks.Tasks.await(Unknown Source)
       at com.google.firebase.iid.zzx.zzah(Unknown Source)
       at com.google.firebase.iid.FirebaseInstanceId.zzb(Unknown Source)
       at com.google.firebase.iid.FirebaseInstanceId.getToken(Unknown Source)
       at com.google.firebase.iid.FirebaseInstanceId.zzcld(Unknown Source)
       at com.google.firebase.iid.zzac.zzclt(Unknown Source)
       at com.google.firebase.iid.zzac.run(Unknown Source)
       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#21. Answers Events Handler1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2053)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:806)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1036)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:75)
       at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:30)
       at java.lang.Thread.run(Thread.java:818)

#22. FinalizerWatchdogDaemon
       at java.lang.Thread.sleep(Thread.java)
       at java.lang.Thread.sleep(Thread.java:1031)
       at java.lang.Thread.sleep(Thread.java:985)
       at java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:288)
       at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:299)
       at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:247)
       at java.lang.Thread.run(Thread.java:818)

#23. Thread-12789
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2053)
       at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:435)
       at com.google.android.gms.common.zza.zza(Unknown Source)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown Source)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.start(Unknown Source)
       at com.google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo(Unknown Source)
       at com.onradar.sdk._RadarSettings$1.run(_RadarSettings.java:264)
       at java.lang.Thread.run(Thread.java:818)

#24. AsyncTask #2
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1036)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#25. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:510)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1036)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#26. pool-5-thread-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2053)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:806)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1036)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#27. pool-7-thread-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1036)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#28. OkHttp ConnectionPool
       at java.lang.Object.wait(Object.java)
       at com.android.okhttp.ConnectionPool.performCleanup(ConnectionPool.java:319)
       at com.android.okhttp.ConnectionPool.runCleanupUntilPoolIsEmpty(ConnectionPool.java:256)
       at com.android.okhttp.ConnectionPool.access$000(ConnectionPool.java:59)
       at com.android.okhttp.ConnectionPool$1.run(ConnectionPool.java:102)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

RNRadarTests.m cannot be found

Hello everyone. I would appreciate any suggestion, what I do wrong or it's a bug with the latest release?

Describe the bug
RNRadarTests.m cannot be found while building the app

To Reproduce
Steps to reproduce the behavior:

  • npm i react-native-radar

  • react-native link react-native-radar

  • add NSLocationAlwaysAndWhenInUseUsageDescription and NSLocationAlwaysUsageDescription keys to Info.plist and fetch with location strings to UIBackgroundModes key.

  • add Radar SDK. Here is my Podfile

platform :ios, '9.0'
inhibit_all_warnings!

target 'QleanCleaners' do
  # Pods for QleanCleaners
  pod 'RadarSDK', '~> 2.1.0'

  target 'QleanCleanersTests' do
    inherit! :search_paths
    # Pods for testing
  end

end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    puts "#{target.name}"
  end
end
  • pod install
  • build the app with react-native or xcode

Expected behavior
App builds successfully via react-native run as well as via XCode

Screenshots
If applicable, add screenshots to help explain your problem.

Metadata (please complete the following information):

  • React Native Radar Version: 2.1.4
  • Platform: iOS
  • Device: iPhone 5s
  • Device OS Version: iOS 12

Additional context

Showing All Messages
:-1: Build input file cannot be found: '/Users/User/project/Qlean/cleaners/node_modules/react-native-radar/ios/RNRadarTests/RNRadarTests.m'

error: Build input file cannot be found: '/Users/User/project/node_modules/react-native-radar/ios/RNRadarTests/RNRadarUtilsTests.m'

Build failing on new version 2.0.0

After updating react-native-radar to version 2.0, I've been getting some strange build errors:

While building module 'Foundation' imported from ../../../ios/Pods/Headers/Public/RadarSDK/RadarSDK/RadarSDK.h:8:
While building module 'CoreFoundation' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:6:
In file included from <module-includes>:1:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:43:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFBase.h:72:
In file included from ../../../ios/Pods/leveldb-library/table/Block.h:10:
In file included from ../../../ios/Pods/leveldb-library/include/leveldb/iterator.h:18:
../../../ios/Pods/leveldb-library/include/leveldb/slice.h:21:10: fatal error: 'string' file not found
#include <string>
         ^~~~~~~~
1 error generated.
While building module 'Foundation' imported from ../../../ios/Pods/Headers/Public/RadarSDK/RadarSDK/RadarSDK.h:8:
In file included from <module-includes>:1:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:6:10: fatal error: could not build module 'CoreFoundation'
#include <CoreFoundation/CoreFoundation.h>
 ~~~~~~~~^
While building module 'Foundation' imported from ../../../ios/Pods/Headers/Public/RadarSDK/RadarSDK/RadarSDK.h:8:
While building module 'Security' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSURLCredential.h:9:
In file included from <module-includes>:1:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/Security.framework/Headers/Security.h:27:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/Security.framework/Headers/SecBase.h:28:10: fatal error: could not build module 'CoreFoundation'
#include <CoreFoundation/CFBase.h>
 ~~~~~~~~^
1 error generated.
While building module 'Foundation' imported from ../../../ios/Pods/Headers/Public/RadarSDK/RadarSDK/RadarSDK.h:8:
While building module 'CFNetwork' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSURLError.h:9:
In file included from <module-includes>:1:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/CFNetwork.framework/Headers/CFNetwork.h:18:10: fatal error: could not build module 'CoreFoundation'
#include <CoreFoundation/CoreFoundation.h>
 ~~~~~~~~^
1 error generated.
4 errors generated.
In file included from /Users/ntomallen/source/zonder-mobile-app/node_modules/react-native-radar/ios/RNRadar.m:1:
In file included from /Users/ntomallen/source/zonder-mobile-app/node_modules/react-native-radar/ios/RNRadar.h:1:
../../../ios/Pods/Headers/Public/RadarSDK/RadarSDK/RadarSDK.h:8:9: fatal error: could not build module 'Foundation'
#import "Foundation/Foundation.h"
 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
While building module 'CoreLocation' imported from ../../../ios/Pods/Headers/Public/RadarSDK/RadarSDK/Radar.h:8:
In file included from <module-includes>:1:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/CoreLocation.framework/Headers/CoreLocation.h:18:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/CoreLocation.framework/Headers/CLErrorDomain.h:9:9: fatal error: could not build module 'Foundation'
#import <Foundation/Foundation.h>
 ~~~~~~~^
1 error generated.



** BUILD FAILED **

I also followed the migration instructions for updating the iOS and Android modules as well. Everything seems to be working correctly on Android.

I've also been researching this error, and I none of the suggested solutions for this error worked.

Headless JS support for Android (Inconsistent JS handling of Radar events in the background)

We've been using Radar extensively for several users, and one strong trend we've noticed is that our JS enter/exit event handlers seem to miss several events. A basic version of how we're using it would be a user enters location A, then exits location A. After exiting the location, the entry shows up on their timeline for them to confirm, deny, or choose an alternate place.

Unfortunately, I can't seem to consistently catch every single enter/exit event. (I compare to the Radar console, which consistently has all of the events, albeit the Facebook place data seems to be out of date in a lot of cases). It's definitely much more reliable on iOS, as far as I can tell. I was wondering if you have tips on how to improve this. One thing I was looking into was Headless JS support. I'm did a very rough implementation earlier today for the package, but I don't think it worked, since the entire package kept giving me "error_network" for all location requests after the changes I made to the broadcast receiver. (Perhaps related to #30? It doesn't seem like the error was actually error_network, but probably something else going wrong).

I'd really appreciate any debugging tips you could give. I'd love to get this working as good as possible, and am definitely willing to submit PR's to help; I'm just not entirely sure what steps I should take to debug locally to make sure my implementation is correct.

One note, I've set up the Radar event handler in a redux-saga channel, since it was originally in the component hierarchy. I read that it needs to be outside of the component hierarchy so it keeps working in the background, so I moved it into a saga. Not sure if that's the best way to go, though.

iOS manual linking error: framework not found RadarSDK

Describe the bug
I followed the instructions to install the library in my project, after all the steps I receive this error when compiling:

ld: framework not found RadarSDK
clang: error: linker command failed with exit code 1 (use -v to see invocation)

To Reproduce

  1. First I ran the npm install react-native-radar and the react-native link react-native-radar.
  2. Copy the RadarSDK.framework into my ios folder.
  3. Add the RadarSDK.framework reference from xcode.
  4. Compile.

I checked the Link Binary With Libraries section and the SDK appears there.

Expected behavior
I cannot import <RadarSDK/RadarSDK.h> because it says "file not found".

Screenshots

Screen Shot 2019-05-03 at 11 26 41 AM

Screen Shot 2019-05-03 at 11 27 00 AM

Screen Shot 2019-05-03 at 11 27 09 AM

Screen Shot 2019-05-03 at 11 27 19 AM

Screen Shot 2019-05-03 at 11 27 32 AM

Screen Shot 2019-05-03 at 11 27 47 AM

Metadata (please complete the following information):

  • React Native Radar Version: 2.1.8
  • Platform: iOS
  • Device: iPhone 6
  • Device OS Version iOS 11

Thanks for your help!

Radar.on events not firing in background mode on iOS using RN 0.59.1

It's very possible I'm not doing something right, however, these are the steps I've taken:

  1. Install RN 0.59.1 with react-native init
  2. Configure cocoapods for use
  3. Install react-native-radar
  4. Configure RadarSDK in pods, then run pods install
  5. Change AppDelegate.m & include radar key
  6. Add CoreLocation to Frameworks & Libraries in XCode
  7. Change "Capabilities" to account for background fetch & location updates
  8. Run code

Describe the bug
Radar registers the user, reports the initial location and provides location updates when iOS simulator is in "Freeway Drive" location mode approximately every 2.5 to 4.5 minutes. When app is put in background mode, no location events, error or radar events are sent until the app is in foreground.

To Reproduce
See GitHub of this issue: https://github.com/levi-beers/RadarTest1

Expected behavior
Radar.on events should fire while app is in background mode.

Screenshots
Reactotron.log
Screen Shot 2019-03-22 at 12 31 31 AM

Background Modes
Screen Shot 2019-03-22 at 12 46 16 AM

Metadata (please complete the following information):

  • React Native Radar Version: 2.1.2
  • Platform: iOS
  • Device iPhoneX
  • Device OS Version [iOS12]

Xcode Log Reporting "UI API called on a background thread"

Describe the bug
I have been debugging a strange issue in which our app crashes. I don't believe the crash is related to Radar, but while pouring over the debug logs, I found an error being reported saying that a UI API was called in Radar's background thread.

To Reproduce
Steps to reproduce the behavior (as far as I can tell):

  1. Open the Xcode log while running an instance of an app with React Native Radar
  2. It should show up right near the other logs that happen during initialization.

Expected behavior
No error message.

Screenshots
Here is the error log:

2018-12-23 20:01:40.523586-0500 zonder[60193:2894435] [reports] Main Thread Checker: UI API called on a background thread: -[UIApplication backgroundTimeRemaining]
PID: 60193, TID: 2894435, Thread name: (none), Queue name: com.facebook.react.RNRadarQueue, QoS: 0
Backtrace:
4   zonder                              0x000000010f2bdddc -[RadarLocationManager requestLocationWithDelay] + 243
5   zonder                              0x000000010f2c6710 +[Radar startTrackingWithOptions:] + 283
6   zonder                              0x000000010f2d02f3 -[RNRadar startTracking:] + 131
7   CoreFoundation                      0x000000011744e03c __invoking___ + 140
8   CoreFoundation                      0x000000011744b4d5 -[NSInvocation invoke] + 325
9   CoreFoundation                      0x000000011744b926 -[NSInvocation invokeWithTarget:] + 54
10  zonder                              0x000000010e9f951a -[RCTModuleMethod invokeWithBridge:module:arguments:] + 2810
11  zonder                              0x000000010eab5346 _ZN8facebook5reactL11invokeInnerEP9RCTBridgeP13RCTModuleDatajRKN5folly7dynamicE + 790
12  zonder                              0x000000010eab4e5f _ZZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEiENK3$_0clEv + 127
13  zonder                              0x000000010eab4dd9 ___ZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEi_block_invoke + 25
14  libdispatch.dylib                   0x0000000118363595 _dispatch_call_block_and_release + 12
15  libdispatch.dylib                   0x0000000118364602 _dispatch_client_callout + 8
16  libdispatch.dylib                   0x000000011836bb0b _dispatch_lane_serial_drain + 791
17  libdispatch.dylib                   0x000000011836c784 _dispatch_lane_invoke + 428
18  libdispatch.dylib                   0x000000011837689a _dispatch_workloop_worker_thread + 733
19  libsystem_pthread.dylib             0x000000011875460b _pthread_wqthread + 409
20  libsystem_pthread.dylib             0x0000000118754405 start_wqthread + 13

Metadata (please complete the following information):

  • React Native Radar Version: 2.1.2 with latest iOS SDK
  • Platform: iOS
  • Device: Simulator
  • Device OS Version: iOS 12.1
  • React Native 0.57.8

ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:fontVariationSettings

Installing and setting up react-native radar will cause the following errors when building for Android:

ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:fontVariationSettings
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:ttcIndex

I think the problem may be similar to the one here, though the solution lies in an update to com.android.support:support but it doesn't seem as if radar uses that.

I've posted more details on my specific build on this stack overflow post

Update Documentation

I was trying to integrate the SDK into my React Native project. I was having fatal errors on the Android Application

    Process: com.paccarapp, PID: 32311
    java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/api/Api$zzf;
        at com.google.android.gms.location.LocationServices.<clinit>(Unknown Source:0)
        at com.google.android.gms.location.LocationServices.getGeofencingClient(Unknown Source:0)
        at io.radar.sdk.di.LocationModule.geofencingClient(LocationModule.kt:20)
        at io.radar.sdk.di.LocationModule_GeofencingClientFactory.proxyGeofencingClient(LocationModule_GeofencingClientFactory.java:31)
        at io.radar.sdk.di.LocationModule_GeofencingClientFactory.provideInstance(LocationModule_GeofencingClientFactory.java:23)
        at io.radar.sdk.di.LocationModule_GeofencingClientFactory.get(LocationModule_GeofencingClientFactory.java:19)
        at io.radar.sdk.di.LocationModule_GeofencingClientFactory.get(LocationModule_GeofencingClientFactory.java:10)
        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
        at io.radar.sdk.location.LocationManager_Factory.provideInstance(LocationManager_Factory.java:55)
        at io.radar.sdk.location.LocationManager_Factory.get(LocationManager_Factory.java:37)
        at io.radar.sdk.location.LocationManager_Factory.get(LocationManager_Factory.java:11)
        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
        at io.radar.sdk.di.DaggerRadarComponent.injectRadar(DaggerRadarComponent.java:135)
        at io.radar.sdk.di.DaggerRadarComponent.inject(DaggerRadarComponent.java:125)
        at io.radar.sdk.internal.RadarInitProvider.onCreate(RadarInitProvider.kt:24)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1917)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1892)
        at android.app.ActivityThread.installProvider(ActivityThread.java:6239)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:5805)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5722)
        at android.app.ActivityThread.-wrap1(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.common.api.Api$zzf" on path: DexPathList[[zip file "/data/app/com.paccarapp-Z8y_kb4NP1h6KL0O6MGjew==/base.apk"],nativeLibraryDirectories=[/data/app/com.paccarapp-Z8y_kb4NP1h6KL0O6MGjew==/lib/x86, /data/app/com.paccarapp-Z8y_kb4NP1h6KL0O6MGjew==/base.apk!/lib/x86, /system/lib, /vendor/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at com.google.android.gms.location.LocationServices.<clinit>(Unknown Source:0) 
        at com.google.android.gms.location.LocationServices.getGeofencingClient(Unknown Source:0) 
        at io.radar.sdk.di.LocationModule.geofencingClient(LocationModule.kt:20) 
        at io.radar.sdk.di.LocationModule_GeofencingClientFactory.proxyGeofencingClient(LocationModule_GeofencingClientFactory.java:31) 
        at io.radar.sdk.di.LocationModule_GeofencingClientFactory.provideInstance(LocationModule_GeofencingClientFactory.java:23) 
        at io.radar.sdk.di.LocationModule_GeofencingClientFactory.get(LocationModule_GeofencingClientFactory.java:19) 
        at io.radar.sdk.di.LocationModule_GeofencingClientFactory.get(LocationModule_GeofencingClientFactory.java:10) 
        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47) 
        at io.radar.sdk.location.LocationManager_Factory.provideInstance(LocationManager_Factory.java:55) 
        at io.radar.sdk.location.LocationManager_Factory.get(LocationManager_Factory.java:37) 
        at io.radar.sdk.location.LocationManager_Factory.get(LocationManager_Factory.java:11) 
        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47) 
        at io.radar.sdk.di.DaggerRadarComponent.injectRadar(DaggerRadarComponent.java:135) 
        at io.radar.sdk.di.DaggerRadarComponent.inject(DaggerRadarComponent.java:125) 
        at io.radar.sdk.internal.RadarInitProvider.onCreate(RadarInitProvider.kt:24) 
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1917) 
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1892) 
        at android.app.ActivityThread.installProvider(ActivityThread.java:6239) 
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:5805) 
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5722) 
        at android.app.ActivityThread.-wrap1(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6494) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 

Then find out you need to add the following dependencies on the app module. Note the documentation suggests adding Google Play Services but just adding that alone will produce the same error:

compile 'com.google.android.gms:play-services-maps:16.0.0'
compile 'com.google.android.gms:play-services-location:16.0.0'

Probably need to add this on the SDK Documentation. This will make newcomers for React Native pretty inconvenient to setup.

geofencing not working on android, not tested in ios yet

when i try to track user, an error has returned "Error: ERROR_LOCATION", and if result has returned has no user id or and geofences.
that is my code:
componentDidMount() {
Radar.trackOnce().then((result) => {
console.log('result is', result)
// do something with result.location, result.events, result.user.geofences
}).catch((err) => {
console.log('err is', err)
// optionally, do something with err
});
}
any solution plz?

java.lang.RuntimeException: Unable to start receiver com.onradar.react.RNRadarReceiver: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.onradar.react.RNRadarEventEmitter.sendEvent(java.lang.String, java.lang.Object)' on a null object reference

java.lang.RuntimeException: Unable to start receiver com.onradar.react.RNRadarReceiver: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.onradar.react.RNRadarEventEmitter.sendEvent(java.lang.String, java.lang.Object)' on a null object reference

iOS Linking Problem

I followed the directions to link the module from the iOS version of the React Native Application. After linking the Android Portion works fine but the iOS version return this message dealing with the RNRadar Framework. I also added the iOS Framework for the iOS project and still return the same error message

'RadarSDK/RadarSDK.h' file not found

Break on npm install

This seems to be an issue.

I tried to install using the command listed on the readme section, but after doing npm install react-native-radar i tried react-native link and got the following:

`module.js:471
throw err;
^

Error: Cannot find module 'rxjs/add/operator/map'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object. (C:\projectang\node_modules@angular-devkit\core\src\l
ogger\indent.js:10:1)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
`

NativeModules.RNRadar is undefined

Even though, I have ran the command

react-native link react-native-radar

Still getting this error on run-time . Need quick fix.

Ran again to double check

D:\react-native-project\radar>react-native link react-native-radar
Scanning folders for symlinks in D:\react-native-project\radar\node_modules (46ms)
rnpm-install info Platform 'ios' module react-native-radar is already linked
rnpm-install info Platform 'android' module react-native-radar is already linked

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.