Code Monkey home page Code Monkey logo

batch-android-sdk's Introduction

Batch Logo

Batch Android SDK

The Batch Android SDK allows you to build meaningful communication experience in your Android app through highly personalized push notifications & In-App messages.

Our ๐Ÿ“• setup documentation details the steps to take for an easy and successful integration.

Prerequisites

The Batch Android SDK requires Android 5.0 (Lollipop / API Level 21).

Documentation

  • Setup guide: start your implementation here!
  • Help center: answers to most questions you may have during the integration
  • API reference: this documents each of the classes and methods in the Batch Android SDK

You may also find this guide useful to review after integration to make sure you're ready to go live: How can I test the integration on Android?

Releases

Batch is available in Maven Central
You can also integrate the Batch Android SDK manually by downloading the .aar.

Building

Build instructions are detailed in BUILDING.md.

Contributing

Please refer to our contributing guidelines.

batch-android-sdk's People

Contributors

abarisain avatar arnaud-roland avatar benju69 avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

batch-android-sdk's Issues

Inbox fetch fails

Hi, we recently encountered a bug in the notification inbox of our Android app. The inbox fetcher always returns an exception with the following information when, for example, fetchNewNotifications is called:

The server was unable to complete your request in time. Please try again later.

We also see an exception in the Batch internal log:

InboxFetchWebserviceClient - Failed to parse notification content, skipping.
com.batch.android.q.k: Missing key or invalid value type in response JSON.

Caused by: com.batch.android.json.JSONException: Value {"t":"c","l":"","i":","od":{"n":"","ct": "","ak":"","di":""},"r":{"m":1,"dmi":60,"dma":3600}} at com.batch of type java.lang.String cannot be converted to JSONObject

Logger.internal(TAG, "Failed to parse notification content, skipping.", e);

We tested with different versions like 1.19.x or 1.20.x and saw the same exception.

Do you have any idea how to fix this bug? Thanks in advance.

Sensitive information (clear-text) stored in Local Storage

The batch sdk integrated part of our application .
version : 'com.batch.android:batch-sdk:1.17.2'.
In the pen test it is observed that the app is storing sensitive information like device ids.

Applications should not leak information sensitive information in the form of clear text.

Kindly check below screenshot for the proof of concept.

image

NPE with version 1.14.2

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.batch.android.q.d()' on a null object reference
       at com.batch.android.messaging.b.b.onDismiss(b.java:101)
       at com.batch.android.messaging.b.g.onDismiss(g.java:177)
       at androidx.fragment.app.DialogFragment.dismissInternal(DialogFragment.java:233)
       at androidx.fragment.app.DialogFragment.dismiss(DialogFragment.java:202)
       at com.batch.android.messaging.b.g.dismiss(g.java:191)
       at com.batch.android.messaging.b.g.e(g.java:281)
       at com.batch.android.messaging.view.a.d.a(d.java:196)
       at com.batch.android.messaging.view.a.d.lambda$RA81_w1pKOlhLEtFCrxfEmX3PGM(d.java:5)
       at com.batch.android.messaging.view.a.-$$Lambda$d$RA81_w1pKOlhLEtFCrxfEmX3PGM.onClick(-.java:2)
       at android.view.View.performClick(View.java:6256)
       at android.view.View$PerformClick.run(View.java:24701)
       at android.os.Handler.handleCallback(Handler.java:789)
       at android.os.Handler.dispatchMessage(Handler.java:98)
       at android.os.Looper.loop(Looper.java:251)
       at android.app.ActivityThread.main(ActivityThread.java:6572)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

Insecure random number generators are used in Batch

Describe the bug
For EPC-M application in the pen testing we identified this vulnerability that Insecure random number generators are used in Batch module.

EPC-M is using (com.batch.android:batch-sdk:1.17.2)

The module should not use insecure code.
image

BatchActionActivity - Could not open deeplink: no activity found to handle Intent.

Hey,

Have a problem when I tap on a push notification, could not recognize my MainActivity to start through the Intent.

I have registered some schemes in my MainActivity but anything could match with a deeplink which is sending from Batch...

I'm pretty sure that I passed correctly all the steps for Android integration from the doc...

Could you have some idea, what is a problem. Thanks!

Build issue with FirebasePerf

Hello,

Below you'll find a bug I'm facing when using your SDK.
Specs

  • OS: MacOS 10.14.4 (18E226)
  • Android Studio: Android Studio 3.5 Beta 1 (Build #AI-191.6707.61.35.5529924, built on May 3, 2019)
  • JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
  • JRE: 1.8.0_202-release-1483-b01 x86_64
  • Gradle: Gradle 5.1.1 (Using the project wrapper)
  • Batch: v.1.14.0 (com.batch.android:batch-sdk:1.14.0)
  • FirebasePerf: v.17.0.0 (com.google.firebase:firebase-perf:17.0.0).

The little have seen about the error message (in bold in the log below) is about, precisely, FirebasePerf on MacOS (here, here and here) and apparently what seems to be a case-sensitivity problem on MacOS.
I've tried to add the following in app/proguard-rules.pro:

-keeppackagenames
-dontusemixedcaseclassnames
-keep class com.batch.** { *; }
-dontwarn com.batch.**

without success.

LOG

registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
Note: Recompile with -Xlint:unchecked for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

D8: Class content provided for type descriptor com.batch.android.c.L actually defines class com.batch.android.c.l
D8: Class content provided for type descriptor com.batch.android.c.N actually defines class com.batch.android.c.n
D8: Class content provided for type descriptor com.batch.android.c.N actually defines class com.batch.android.c.n
D8: Class content provided for type descriptor com.batch.android.D actually defines class com.batch.android.d

com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process app/build/intermediates/transforms/FirebasePerformancePlugin/ _package_ /debug/63
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593)
        at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677)
        at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:720)
        at com.android.ide.common.internal.WaitableExecutor.waitForTasksWithQuickFail(WaitableExecutor.java:149)
        at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.transform(DexArchiveBuilderTransform.java:420)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
        at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
        at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:47)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:284)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:273)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:258)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:67)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:145)
        at org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:49)
        at org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
        at org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
        at org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
        at org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:33)
        at org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
        at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:43)
        at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:29)
        at org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:134)
        at org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$3(CacheStep.java:83)
        at java.util.Optional.orElseGet(Optional.java:267)
        at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
        at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:36)
        at org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
        at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
        at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
        at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
        at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
        at java.util.Optional.map(Optional.java:215)
        at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
        at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
        at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:91)
        at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
        at org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:79)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
        at org.gradle.api.internal.tasks.execution.ResolvePreviousStateExecuter.execute(ResolvePreviousStateExecuter.java:43)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:94)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:55)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:67)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
        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:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
        at java.lang.Thread.run(Thread.java:748)
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Failed to process app/build/intermediates/transforms/FirebasePerformancePlugin/ _package_ /debug/63
        at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.launchProcessing(DexArchiveBuilderTransform.java:909)
        at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.lambda$convertToDexArchive$6(DexArchiveBuilderTransform.java:834)
        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)
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
        at com.android.builder.dexing.D8DexArchiveBuilder.getExceptionToRethrow(D8DexArchiveBuilder.java:124)
        at com.android.builder.dexing.D8DexArchiveBuilder.convert(D8DexArchiveBuilder.java:101)
        at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.launchProcessing(DexArchiveBuilderTransform.java:904)
        ... 6 more
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
        at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:81)
        at com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(ExceptionUtils.java:45)
        at com.android.tools.r8.D8.run(D8.java:94)
        at com.android.builder.dexing.D8DexArchiveBuilder.convert(D8DexArchiveBuilder.java:99)
        ... 7 more
Caused by: com.android.tools.r8.utils.AbortException: Error: Class content provided for type descriptor com.batch.android.D actually defines class com.batch.android.d
        at com.android.tools.r8.utils.Reporter.failIfPendingErrors(Reporter.java:101)
        at com.android.tools.r8.utils.Reporter.fatalError(Reporter.java:72)
        at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:66)
        ... 10 more

Log is available [here](https://pastebin.com/R75Cq4XA) for more readability.

I have clean my project & invalid Android Studio cache before building, but still, problem persists.

I'm building with the following command:
./gradlew --daemon --parallel app:clean app:cleanBuildCache app:assemble _package_ Debug

Is it a problem on my end ? Or maybe FirebasePerf plugin is interfering with your SDK on Mac ?
Thanks,

IllegalStateException: Fragment not associated with a fragment manager

Hello Batch Team,
We have noticed a new crash recently with 1.15.1 :

Fatal Exception: java.lang.IllegalStateException: Fragment d{5336dd6 (b5e8eb3b-2162-40e8-a779-923fc13f86e7)} not associated with a fragment manager.
       at androidx.fragment.app.Fragment.requireFragmentManager(Fragment.java:910)
       at androidx.fragment.app.DialogFragment.dismissInternal(DialogFragment.java:245)
       at androidx.fragment.app.DialogFragment.dismissAllowingStateLoss(DialogFragment.java:212)
       at com.batch.android.messaging.b.d.dismissAllowingStateLoss(d.java:131)
       at com.batch.android.messaging.b.d.e(d.java:197)
       at com.batch.android.messaging.view.a.c.i(c.java:177)
       at com.batch.android.messaging.view.a.c.lambda$4Oavn_OFBzq9o9t-4xOYqFMszaM(c.java)
       at com.batch.android.messaging.view.a.-$$Lambda$c$C2t6BYYO-NGdVzjayFRpFqBZAGE.run(-.java:2)
       at android.os.Handler.handleCallback(Handler.java:873)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:201)
       at android.app.ActivityThread.main(ActivityThread.java:6810)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)

NPE with version 1.14.2

This might be related to #5

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.batch.android.q.a()' on a null object reference
       at com.batch.android.messaging.b.b.onCancel(b.java:108)
       at android.app.Dialog$ListenersHandler.handleMessage(Dialog.java:1600)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:214)
       at android.app.ActivityThread.main(ActivityThread.java:7078)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)

Android - Javascript enabled on webview

In the latest pentest this vulnerability is detected for Android.
A malicious user might be able to run the Javascript on the Webview and perform XSS attack to get access to sensitive tokens

we are using batch version com.batch.android:batch-sdk:1.17.2

image

Android 8 (Oreo) fatal exception

When using Batch sdk (1.10.0) with Android API 26 I get the following error:

java.lang.RuntimeException: Unable to start receiver com.batch.android.BatchPushReceiver: java.lang.IllegalStateException: Not allowed to start service Intent

Perhaps you need to change the Intent to JobServiceIntent, since Android 8 has some background limitations.

Crash RemoteServiceException : Bad notification posted

Hi Batch team,
We have been facing this issue for quite a long time now.
It happens only on android 7 (but we have a similar issue on android 4)

Here is the crashlog :

Fatal Exception: android.app.RemoteServiceException: Bad notification posted from package com.xxx.xxx: Couldn't expand RemoteViews for: StatusBarNotification(pkg=com.xxx.xxx user=UserHandle{0} id=123456789 tag=batch key=0|com.xxx.xxx|123456789 |batch|12345: Notification(pri=0 contentView=null vibrate=default sound=default tick defaults=0xffffffff flags=0x19 color=0x00000000 vis=PUBLIC semFlags=0x0 semPriority=0))
at android.app.ActivityThread$H.handleMessage + 1810(ActivityThread.java:1810)
at android.os.Handler.dispatchMessage + 102(Handler.java:102)
at android.os.Looper.loop + 154(Looper.java:154)
at android.app.ActivityThread.main + 6780(ActivityThread.java:6780)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 1500(ZygoteInit.java:1500)
at com.android.internal.os.ZygoteInit.main + 1390(ZygoteInit.java:1390)

This crash still occurs with the last sdk version (1.14.4).

All I could find online was the same issue reported on the OneSignal issue tracker. OneSignal/OneSignal-Android-SDK#263 (comment)
Apparently it seems they fixed it on 3.9.1.

This issue is currently our first crash source, so I hope it can be fixed.

Wishing you a happy holliday season,

Rejecting re-init on previously-failed class java.lang.Class<com.batch.android.BatchPushInstanceIDService>:

Hello Team,

While doing a POC for one of our project in which we want to include Batch, I am not able to test the push notifications, it shows that "No push token found for this install." with Try Again button.

I can see the following error inside my logs, maybe due to below log, its not showing any push token.

Pc: I am getting the Push Token from Firebase and I can log it in my logcat.

Rejecting re-init on previously-failed class java.lang.Class<com.batch.android.BatchPushInstanceIDService>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/iid/InstanceIDListenerService;
at com.batch.android.PushRegistrationProvider com.batch.android.p0.i.r() (SourceFile:5)
at com.batch.android.AdsIdentifierProvider com.batch.android.p0.i.k() (SourceFile:1)
at void com.batch.android.a.b() (SourceFile:2)
at void com.batch.android.a.() (SourceFile:9)
at com.batch.android.a com.batch.android.j0.b.b.a() (SourceFile:5)
at com.batch.android.t0.e com.batch.android.Batch.a(com.batch.android.t0.c, boolean, android.content.Context, boolean, java.util.concurrent.atomic.AtomicBoolean, java.lang.StringBuilder, com.batch.android.t0.e) (SourceFile:562)
at com.batch.android.t0.e com.batch.android.Batch.lambda$K8i-pU9LCfFw1en0Tun6xT9AXH8(com.batch.android.t0.c, boolean, android.content.Context, boolean, java.util.concurrent.atomic.AtomicBoolean, java.lang.StringBuilder, com.batch.android.t0.e) (SourceFile:-1)
at com.batch.android.t0.e com.batch.android.-$$Lambda$Batch$K8i-pU9LCfFw1en0Tun6xT9AXH8.a(com.batch.android.t0.e) (lambda:-1)
at boolean com.batch.android.t0.c.a(com.batch.android.t0.a) (SourceFile:3)
at void com.batch.android.Batch.a(android.content.Context, boolean, boolean) (SourceFile:39)
at void com.batch.android.Batch.onStart(android.app.Activity) (SourceFile:1)
at void com.batch.android.BatchActivityLifecycleHelper.onActivityStarted(android.app.Activity) (SourceFile:1)
at void android.app.Application.dispatchActivityStarted(android.app.Activity) (Application.java:242)
at void android.app.Activity.onStart() (Activity.java:1353)
at void androidx.fragment.app.FragmentActivity.onStart() (FragmentActivity.java:536)
at void androidx.appcompat.app.AppCompatActivity.onStart() (AppCompatActivity.java:210)
at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1419)
at void android.app.Activity.performStart(java.lang.String) (Activity.java:7479)
at void android.app.ActivityThread.handleStartActivity(android.app.ActivityThread$ActivityClientRecord, android.app.servertransaction.PendingTransactionActions) (ActivityThread.java:3454)
at void android.app.servertransaction.TransactionExecutor.performLifecycleSequence(android.app.ActivityThread$ActivityClientRecord, android.util.IntArray) (TransactionExecutor.java:180)
at void android.app.servertransaction.TransactionExecutor.cycleToPath(android.app.ActivityThread$ActivityClientRecord, int, boolean) (TransactionExecutor.java:165)
at void android.app.servertransaction.TransactionExecutor.executeLifecycleState(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:142)
at void android.app.servertransaction.TransactionExecutor.execute(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:70)
at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:2199)
at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:112)
at void android.os.Looper.loop() (Looper.java:216)
at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7625)
at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:524)
at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:987)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.iid.InstanceIDListenerService" on path: DexPathList[[zip file "/data/app/com.dtse.fcmsample-THhUUF0w9UhBwQpjv-eVHw==/base.apk"],nativeLibraryDirectories=[/data/app/com.dtse.fcmsample-THhUUF0w9UhBwQpjv-eVHw==/lib/arm64, /system/lib64, /product/lib64]]
at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:134)
at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
at com.batch.android.PushRegistrationProvider com.batch.android.p0.i.r() (SourceFile:5)
at com.batch.android.AdsIdentifierProvider com.batch.android.p0.i.k() (SourceFile:1)
at void com.batch.android.a.b() (SourceFile:2)
at void com.batch.android.a.() (SourceFile:9)
at com.batch.android.a com.batch.android.j0.b.b.a() (SourceFile:5)
at com.batch.android.t0.e com.batch.android.Batch.a(com.batch.android.t0.c, boolean, android.content.Context, boolean, java.util.concurrent.atomic.AtomicBoolean, java.lang.StringBuilder, com.batch.android.t0.e) (SourceFile:562)
at com.batch.android.t0.e com.batch.android.Batch.lambda$K8i-pU9LCfFw1en0Tun6xT9AXH8(com.batch.android.t0.c, boolean, android.content.Context, boolean, java.util.concurrent.atomic.AtomicBoolean, java.lang.StringBuilder, com.batch.android.t0.e) (SourceFile:-1)
at com.batch.android.t0.e com.batch.android.-$$Lambda$Batch$K8i-pU9LCfFw1en0Tun6xT9AXH8.a(com.batch.android.t0.e) (lambda:-1)
at boolean com.batch.android.t0.c.a(com.batch.android.t0.a) (SourceFile:3)
at void com.batch.android.Batch.a(android.content.Context, boolean, boolean) (SourceFile:39)
at void com.batch.android.Batch.onStart(android.app.Activity) (SourceFile:1)
at void com.batch.android.BatchActivityLifecycleHelper.onActivityStarted(android.app.Activity) (SourceFile:1)
at void android.app.Application.dispatchActivityStarted(android.app.Activity) (Application.java:242)
at void android.app.Activity.onStart() (Activity.java:1353)
at void androidx.fragment.app.FragmentActivity.onStart() (FragmentActivity.java:536)
at void androidx.appcompat.app.AppCompatActivity.onStart() (AppCompatActivity.java:210)
at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1419)
at void android.app.Activity.performStart(java.lang.String) (Activity.java:7479)
at void android.app.ActivityThread.handleStartActivity(android.app.ActivityThread$ActivityClientRecord, android.app.servertransaction.PendingTransactionActions) (ActivityThread.java:3454)
at void android.app.servertransaction.TransactionExecutor.performLifecycleSequence(android.app.ActivityThread$ActivityClientRecord, android.util.IntArray) (TransactionExecutor.java:180)
at void android.app.servertransaction.TransactionExecutor.cycleToPath(android.app.ActivityThread$ActivityClientRecord, int, boolean) (TransactionExecutor.java:165)
at void android.app.servertransaction.TransactionExecutor.executeLifecycleState(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:142)
at void android.app.servertransaction.TransactionExecutor.execute(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:70)
at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:2199)
at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:112)
at void android.os.Looper.loop() (Looper.java:216)
at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7625)
at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:524)
at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:987)
Rejecting re-init on previously-failed class java.lang.Class<com.batch.android.BatchPushInstanceIDService>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/iid/InstanceIDListenerService;
at com.batch.android.PushRegistrationProvider com.batch.android.p0.i.r() (SourceFile:5)
at com.batch.android.AdsIdentifierProvider com.batch.android.p0.i.k() (SourceFile:1)
at void com.batch.android.a.b() (SourceFile:2)
at void com.batch.android.a.() (SourceFile:9)
at com.batch.android.a com.batch.android.j0.b.b.a() (SourceFile:5)
at com.batch.android.t0.e com.batch.android.Batch.a(com.batch.android.t0.c, boolean, android.content.Context, boolean, java.util.concurrent.atomic.AtomicBoolean, java.lang.StringBuilder, com.batch.android.t0.e) (SourceFile:562)
at com.batch.android.t0.e com.batch.android.Batch.lambda$K8i-pU9LCfFw1en0Tun6xT9AXH8(com.batch.android.t0.c, boolean, android.content.Context, boolean, java.util.concurrent.atomic.AtomicBoolean, java.lang.StringBuilder, com.batch.android.t0.e) (SourceFile:-1)
at com.batch.android.t0.e com.batch.android.-$$Lambda$Batch$K8i-pU9LCfFw1en0Tun6xT9AXH8.a(com.batch.android.t0.e) (lambda:-1)
at boolean com.batch.android.t0.c.a(com.batch.android.t0.a) (SourceFile:3)
at void com.batch.android.Batch.a(android.content.Context, boolean, boolean) (SourceFile:39)
at void com.batch.android.Batch.onStart(android.app.Activity) (SourceFile:1)
at void com.batch.android.BatchActivityLifecycleHelper.onActivityStarted(android.app.Activity) (SourceFile:1)
at void android.app.Application.dispatchActivityStarted(android.app.Activity) (Application.java:242)
at void android.app.Activity.onStart() (Activity.java:1353)
at void androidx.fragment.app.FragmentActivity.onStart() (FragmentActivity.java:536)
at void androidx.appcompat.app.AppCompatActivity.onStart() (AppCompatActivity.java:210)
at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1419)
at void android.app.Activity.performStart(java.lang.String) (Activity.java:7479)
at void android.app.ActivityThread.handleStartActivity(android.app.ActivityThread$ActivityClientRecord, android.app.servertransaction.PendingTransactionActions) (ActivityThread.java:3454)
at void android.app.servertransaction.TransactionExecutor.performLifecycleSequence(android.app.ActivityThread$ActivityClientRecord, android.util.IntArray) (TransactionExecutor.java:180)
at void android.app.servertransaction.TransactionExecutor.cycleToPath(android.app.ActivityThread$ActivityClientRecord, int, boolean) (TransactionExecutor.java:165)
at void android.app.servertransaction.TransactionExecutor.executeLifecycleState(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:142)
at void android.app.servertransaction.TransactionExecutor.execute(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:70)
at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:2199)
at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:112)
at void android.os.Looper.loop() (Looper.java:216)
at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7625)
at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:524)
at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:987)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.iid.InstanceIDListenerService" on path: DexPathList[[zip file "/data/app/com.dtse.fcmsample-THhUUF0w9UhBwQpjv-eVHw==/base.apk"],nativeLibraryDirectories=[/data/app/com.dtse.fcmsample-THhUUF0w9UhBwQpjv-eVHw==/lib/arm64, /system/lib64, /product/lib64]]
at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:134)
at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
at com.batch.android.PushRegistrationProvider com.batch.android.p0.i.r() (SourceFile:5)
at com.batch.android.AdsIdentifierProvider com.batch.android.p0.i.k() (SourceFile:1)
at void com.batch.android.a.b() (SourceFile:2)
at void com.batch.android.a.() (SourceFile:9)
at com.batch.android.a com.batch.android.j0.b.b.a() (SourceFile:5)
at com.batch.android.t0.e com.batch.android.Batch.a(com.batch.android.t0.c, boolean, android.content.Context, boolean, java.util.concurrent.atomic.AtomicBoolean, java.lang.StringBuilder, com.batch.android.t0.e) (SourceFile:562)
at com.batch.android.t0.e com.batch.android.Batch.lambda$K8i-pU9LCfFw1en0Tun6xT9AXH8(com.batch.android.t0.c, boolean, android.content.Context, boolean, java.util.concurrent.atomic.AtomicBoolean, java.lang.StringBuilder, com.batch.android.t0.e) (SourceFile:-1)
at com.batch.android.t0.e com.batch.android.-$$Lambda$Batch$K8i-pU9LCfFw1en0Tun6xT9AXH8.a(com.batch.android.t0.e) (lambda:-1)
at boolean com.batch.android.t0.c.a(com.batch.android.t0.a) (SourceFile:3)
at void com.batch.android.Batch.a(android.content.Context, boolean, boolean) (SourceFile:39)
at void com.batch.android.Batch.onStart(android.app.Activity) (SourceFile:1)
at void com.batch.android.BatchActivityLifecycleHelper.onActivityStarted(android.app.Activity) (SourceFile:1)
at void android.app.Application.dispatchActivityStarted(android.app.Activity) (Application.java:242)
at void android.app.Activity.onStart() (Activity.java:1353)
at void androidx.fragment.app.FragmentActivity.onStart() (FragmentActivity.java:536)
at void androidx.appcompat.app.AppCompatActivity.onStart() (AppCompatActivity.java:210)
at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1419)
at void android.app.Activity.performStart(java.lang.String) (Activity.java:7479)
at void android.app.ActivityThread.handleStartActivity(android.app.ActivityThread$ActivityClientRecord, android.app.servertransaction.PendingTransactionActions) (ActivityThread.java:3454)
at void android.app.servertransaction.TransactionExecutor.performLifecycleSequence(android.app.ActivityThread$ActivityClientRecord, android.util.IntArray) (TransactionExecutor.java:180)
at void android.app.servertransaction.TransactionExecutor.cycleToPath(android.app.ActivityThread$ActivityClientRecord, int, boolean) (TransactionExecutor.java:165)
at void android.app.servertransaction.TransactionExecutor.executeLifecycleState(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:142)
at void android.app.servertransaction.TransactionExecutor.execute(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:70)
at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:2199)
at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:112)
at void android.os.Looper.loop() (Looper.java:216)
at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7625)
at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:524)
at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:987)

SQLiteConnection object was leaked

Hy i'm reporting an issue found from logging my Android app, it seems like there is a database leak:

01-17 00:08:58.880 D/Batch (25367): Batch.Push: Registration id: cMCRw8f1RDA:APA91bESs-ZveXFDW3QvxHS3kGd303m5wntRuGJOf4a_IHcL2eXUE9YcIG28sUltCVO-W2nWhwpj46l7nPoNVaNZFJDzBc9vY343LZEc2JrW3T-uN2YnOFDuXtgKYNrppwIPeQSeprOH
01-17 00:08:59.729 W/SQLiteConnectionPool(25367): A SQLiteConnection object for database '/data/user/0/com.thirdframestudios.android.expensoor/databases/ba_tr.db' was leaked! Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.

01-17 00:01:34.867 W/SQLiteConnectionPool(25367): A SQLiteConnection object for database '/data/user/0/com.thirdframestudios.android.expensoor/databases/ba_tr.db' was leaked! Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.

error: resource style/com.batch.android.AdActivityTheme not found

how can solve this error

CommandInvokationFailure: Gradle build failed. 
C:/Program Files/Java/jdk1.8.0_211\bin\java.exe -classpath "C:\Program Files\Unity2017.4.25f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-4.6.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"

stderr[

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':processReleaseResources'.
> Android resource linking failed
  Output:  E:\TaxiKhati\Temp\gradleOut\build\intermediates\merged_manifests\release\processReleaseManifest\merged\AndroidManifest.xml:133: error: resource style/com.batch.android.AdActivityTheme (aka ir.balootgames.taxi:style/com.batch.android.AdActivityTheme) not found.
  error: failed processing manifest.
  
  Command: C:\Users\Saeed Aliakbari\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.0-4818971-windows.jar\86447f6eaa0529806ab8da21038c6fa3\aapt2-3.2.0-4818971-windows\aapt2.exe link -I\
          E:\Unity Program\AndroidComponents\sdk6x\platforms\android-28\android.jar\
          --manifest\
          E:\TaxiKhati\Temp\gradleOut\build\intermediates\merged_manifests\release\processReleaseManifest\merged\AndroidManifest.xml\
          -o\
          E:\TaxiKhati\Temp\gradleOut\build\intermediates\processed_res\release\processReleaseResources\out\resources-release.ap_\
          -R\
          @E:\TaxiKhati\Temp\gradleOut\build\intermediates\incremental\processReleaseResources\resources-list-for-resources-release.ap_.txt\
          --auto-add-overlay\
          --java\
          E:\TaxiKhati\Temp\gradleOut\build\generated\not_namespaced_r_class_sources\release\processReleaseResources\r\
          --custom-package\
          ir.balootgames.taxi\
          -0\
          apk\
          -0\
          .unity3d\
          -0\
          .ress\
          -0\
          .resource\
          -0\
          .obb\
          --output-text-symbols\
          E:\TaxiKhati\Temp\gradleOut\build\intermediates\symbols\release\R.txt\
          --no-version-vectors
  Daemon:  AAPT2 aapt2-3.2.0-4818971-windows Daemon #0
  Output:  E:\TaxiKhati\Temp\gradleOut\build\intermediates\merged_manifests\release\processReleaseManifest\merged\AndroidManifest.xml:133: AAPT: error: resource style/com.batch.android.AdActivityTheme (aka ir.balootgames.taxi:style/com.batch.android.AdActivityTheme) not found.
      
  error: failed processing manifest.
  Command: C:\Users\Saeed Aliakbari\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.0-4818971-windows.jar\86447f6eaa0529806ab8da21038c6fa3\aapt2-3.2.0-4818971-windows\aapt2.exe link -I\
          E:\Unity Program\AndroidComponents\sdk6x\platforms\android-28\android.jar\
          --manifest\
          E:\TaxiKhati\Temp\gradleOut\build\intermediates\merged_manifests\release\processReleaseManifest\merged\AndroidManifest.xml\
          -o\
          E:\TaxiKhati\Temp\gradleOut\build\intermediates\processed_res\release\processReleaseResources\out\resources-release.ap_\
          -R\
          @E:\TaxiKhati\Temp\gradleOut\build\intermediates\incremental\processReleaseResources\resources-list-for-resources-release.ap_.txt\
          --auto-add-overlay\
          --java\
          E:\TaxiKhati\Temp\gradleOut\build\generated\not_namespaced_r_class_sources\release\processReleaseResources\r\
          --custom-package\
          ir.balootgames.taxi\
          -0\
          apk\
          -0\
          .unity3d\
          -0\
          .ress\
          -0\
          .resource\
          -0\
          .obb\
          --output-text-symbols\
          E:\TaxiKhati\Temp\gradleOut\build\intermediates\symbols\release\R.txt\
          --no-version-vectors
  Daemon:  AAPT2 aapt2-3.2.0-4818971-windows Daemon #0

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 9s
]
stdout[
WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html
WARNING: The specified Android SDK Build Tools version (22.0.1) is ignored, as it is below the minimum supported version (28.0.2) for Android Gradle Plugin 3.2.0.
Android SDK Build Tools 28.0.2 will be used.
To suppress this warning, remove "buildToolsVersion '22.0.1'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.
:checkReleaseClasspath UP-TO-DATE
:preBuild UP-TO-DATE
:preReleaseBuild UP-TO-DATE
:compileReleaseAidl NO-SOURCE
:compileReleaseRenderscript UP-TO-DATE
:checkReleaseManifest UP-TO-DATE
:generateReleaseBuildConfig UP-TO-DATE
:prepareLintJar UP-TO-DATE
:mainApkListPersistenceRelease UP-TO-DATE
:generateReleaseResValues UP-TO-DATE
:generateReleaseResources UP-TO-DATE
:mergeReleaseResources UP-TO-DATE
:createReleaseCompatibleScreenManifests UP-TO-DATE
:processReleaseManifest
E:\TaxiKhati\Temp\gradleOut\src\main\AndroidManifest.xml:18:3-73:17 Warning:
	application@android:allowBackup was tagged at AndroidManifest.xml:18 to replace other declarations but no other declaration present
:splitsDiscoveryTaskRelease UP-TO-DATE
:processReleaseResources FAILED
13 actionable tasks: 2 executed, 11 up-to-date
]
exit code: 1
UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidJavaTools.RunJava (System.String args, System.String workingdir, System.Action`1 progress, System.String error)
UnityEditor.Android.GradleWrapper.Run (System.String workingdir, System.String task, System.Action`1 progress)
Rethrow as GradleInvokationException: Gradle build failed
UnityEditor.Android.GradleWrapper.Run (System.String workingdir, System.String task, System.Action`1 progress)
UnityEditor.Android.PostProcessor.Tasks.BuildGradleProject.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

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.