Integration with Tab payment method

13 views
Skip to first unread message

Fuad Nassar

unread,
Dec 30, 2019, 12:04:34 PM12/30/19
to CodenameOne Discussions
hi shai,

i tried to adding Tab SDK for my android app to accepted payment method from arab country users
in tab documentation i found that i should do some things like:

1) change 
classpath 'com.android.tools.build:gradle:3.0.1' 
TO 
classpath 'com.android.tools.build:gradle:3.2.1'

 2)add this to build.gradle file
compileOptions { 
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8 
}

which build hints can help me for that?
 

Shai Almog

unread,
Dec 30, 2019, 10:07:23 PM12/30/19
to CodenameOne Discussions
Hi,
We use gradle 4.6 so I think it should without a change but I'm not sure.
The Java 8 support in Android native isn't something that's currently toggleable. We have an experimental flag android.java8=true but I'm not sure if it will work correctly.

Fuad Nassar

unread,
Dec 31, 2019, 5:50:53 AM12/31/19
to CodenameOne Discussions
yes it done add compileOptions  as fine when set android.java8=true,but i get a new error msg:

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.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:497)
        at org
.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org
.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
        at org
.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
        at org
.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
        at org
.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:124)
        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.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:113)
        at org
.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:95)
        at org
.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
        at org
.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
        at org
.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
        at org
.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
        at org
.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
        at org
.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
        at org
.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
        at org
.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
        at org
.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
        at org
.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
        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:256)
        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.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:249)
        at org
.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:238)
        at org
.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
        at org
.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
        at org
.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
        at org
.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
        at org
.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:663)
        at org
.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:597)
        at org
.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
        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 /home/ec2-user/android-sdk/build-tools/28.0.3/aapt with arguments {package -f --no-crunch -I /home/ec2-user/android-sdk/platforms/android-28/android.jar -M /tmp/build7653462000187745952xxx/MyApplication/build/intermediates/manifests/full/debug/AndroidManifest.xml -S /tmp/build7653462000187745952xxx/MyApplication/build/intermediates/res/merged/debug -m -J /tmp/build7653462000187745952xxx/MyApplication/build/generated/source/r/debug -F /tmp/build7653462000187745952xxx/MyApplication/build/intermediates/res/debug/resources-debug.ap_ --custom-package com.cn1.tabtest -0 apk --output-text-symbols /tmp/build7653462000187745952xxx/MyApplication/build/intermediates/symbols/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)
       
... 51 more
Caused by: com.android.ide.common.process.ProcessException: Error while executing process /home/ec2-user/android-sdk/build-tools/28.0.3/aapt with arguments {package -f --no-crunch -I /home/ec2-user/android-sdk/platforms/android-28/android.jar -M /tmp/build7653462000187745952xxx/MyApplication/build/intermediates/manifests/full/debug/AndroidManifest.xml -S /tmp/build7653462000187745952xxx/MyApplication/build/intermediates/res/merged/debug -m -J /tmp/build7653462000187745952xxx/MyApplication/build/generated/source/r/debug -F /tmp/build7653462000187745952xxx/MyApplication/build/intermediates/res/debug/resources-debug.ap_ --custom-package com.cn1.tabtest -0 apk --output-text-symbols /tmp/build7653462000187745952xxx/MyApplication/build/intermediates/symbols/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 '/home/ec2-user/android-sdk/build-tools/28.0.3/aapt'' finished with non-zero exit value 1
        at org
.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:389)
        at com
.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:46)
       
... 9 more
Shutdown finished in 1ms
:processDebugResources FAILED
:processDebugResources (Thread[Task worker for ':' Thread 2,5,main]) completed. Took 0.824 secs.

FAILURE
: Build failed with an exception.

* What went wrong:
Execution failed for task ':processDebugResources'.
> Failed to execute aapt


i used these hints
Request Args: 
-----------------
android
.gradleDep=;implementation 'com.github.Tap-Payments:goSellSDK-Android:2.4.8';
android
.buildToolsVersion=28.0.3
java
.version=8
android
.min_sdk_version=16
android
.repositories=maven { url 'https://jitpack.io' }
android
.java8=true
ios
.newStorageLocation=true
android
.targetSDKVersion=28
-------------------

Fuad Nassar

unread,
Dec 31, 2019, 5:51:28 AM12/31/19
to CodenameOne Discussions


On Tuesday, December 31, 2019 at 5:07:23 AM UTC+2, Shai Almog wrote:
error (6).txt

Shai Almog

unread,
Dec 31, 2019, 9:23:44 PM12/31/19
to CodenameOne Discussions
This seems to be a problem with their SDK. Is it meant to work with API level 28? Maybe it needs a newer version of the build tools?

Fuad Nassar

unread,
Jan 1, 2020, 1:13:46 PM1/1/20
to CodenameOne Discussions

According 

https://github.com/Tap-Payments/goSellSDK-android#proguard-rules


Requirements


To use the SDK the following requirements must be met:

  1. Android Studio 3.3 or newer
  2. Android SDK Tools 26.1.1 or newer
  3. Android Platform Version: API 28: Android 9.0 (Pie) revision 6 or later
  4. **Build gradle:3.5.0

Installation


Include goSellSDK library as a dependency module in your project


  1. Clone goSellSDK library from Tap repository
        g...@github.com:Tap-Payments/goSellSDK-Android.git
    
  2. Add goSellSDK library to your project settings.gradle file as following
        include ':library', ':YourAppName'
  3. Setup your project to include goSellSDK as a dependency Module.
    1. File -> Project Structure -> Modules -> << your project name >>
    2. Dependencies -> click on + icon in the screen bottom -> add Module Dependency
    3. select goSellSDK library

Installation with JitPack


JitPack is a novel package repository for JVM and Android projects. It builds Git projects on demand and provides you with ready-to-use artifacts (jar, aar).

To integrate goSellSDK into your project add it in your root build.gradle at the end of repositories:

	allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}

Step 2. Add the dependency

	dependencies {
	        implementation 'com.github.Tap-Payments:goSellSDK-Android:2.4.8'
	}

Proguard Rules


Proguard rules for SDK Library are:

    -keepattributes Signature
    -keepclassmembernames,allowobfuscation interface * {
        @retrofit2.http.* <methods>;
    }
    -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement

    #########################################################################
    # OkHttp
    #########################################################################
    -dontwarn okhttp3.**
    -dontwarn okhttp2.**
    -dontwarn okio.**
    -dontwarn javax.annotation.**
    -dontwarn org.conscrypt.**
    -keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase

Note


Regarding to this Issue " Google throws this exception on Activity's onCreate method after v27, their meaning is if an Activity is translucent or floating, its orientation should be relied on parent(background) so, Activity can't make decision on itself. Even if you remove android:screenOrientation="portrait" from the floating or translucent Activity In android Oreo (API 26) you can not change orientation for Activity that offer translucent.

Your Activity that launches the SDK has to set orientation to Portrait, becuase our SDK is just a child to your actvity in case of translucent mode.

Shai Almog

unread,
Jan 1, 2020, 9:17:54 PM1/1/20
to CodenameOne Discussions
The best approach here is to download the sources without the changes and try to integrate the lib into there. Then look at the changes you had to do to the build and try to replicate them exactly in the build cloud.

Fuad Nassar

unread,
Jan 2, 2020, 3:11:52 AM1/2/20
to CodenameOne Discussions
oky thanks i will try that
Reply all
Reply to author
Forward
0 new messages