Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Execution failed for task ':pdfrx:mergeReleaseNativeLibs'. > A failure occurred while executing com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction #8

Closed
felix-synorex opened this issue Dec 20, 2023 · 35 comments
Labels
help wanted Extra attention is needed question Further information is requested

Comments

@felix-synorex
Copy link

I have trouble build the apk with pdfrx install.

Below is error I got

FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':pdfrx:mergeReleaseNativeLibs'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction
   > 2 files found with path 'lib/arm64-v8a/libpdfium.so' from inputs:
      - /opt/atlassian/pipelines/agent/build/build/pdfrx/intermediates/merged_jni_libs/release/out/arm64-v8a/libpdfium.so
      - /opt/atlassian/pipelines/agent/build/build/pdfrx/intermediates/cxx/RelWithDebInfo/1o3w592y/obj/arm64-v8a/libpdfium.so
     If you are using jniLibs and CMake IMPORTED targets, see
     https://developer.android.com/r/tools/jniLibs-vs-imported-targets

I have try to add packagingOptions like so in app level build.gradle but not working also.

android {
    
    packagingOptions {
        pickFirst 'lib/x86/libpdfium.so'
        pickFirst 'lib/x86_64/libpdfium.so'
        pickFirst 'lib/armeabi-v7a/libpdfium.so'
        pickFirst 'lib/arm64-v8a/libpdfium.so'
    }
//rest of flavors, compile, etc...
}
@espresso3389
Copy link
Owner

I've tested flutter build apk --release on Windows and macOS with fresh flutter+Android Studio environment but no issues found during the build.

Could you please give me your flutter doctor -v result here?

@espresso3389 espresso3389 added question Further information is requested and removed question Further information is requested labels Dec 21, 2023
@felix-synorex
Copy link
Author

I am runnning this from a ghcr.io/cirruslabs/flutter:latest docker image.

Here is the flutter doctor -v result:

[!] Flutter (Channel [user-branch], 3.16.4, on Ubuntu 22.04.2 LTS 5.10.102.1-microsoft-standard-WSL2, locale en_US.UTF-8)
    ! Flutter version 3.16.4 on channel [user-branch] at /sdks/flutter
      Currently on an unknown channel. Run `flutter channel` to switch to an official channel.
      If that doesn't fix the issue, reinstall Flutter by following instructions at https://flutter.dev/docs/get-started/install.
    ! Upstream repository unknown source is not a standard remote.
      Set environment variable "FLUTTER_GIT_URL" to unknown source to dismiss this error.
    • Framework revision 2e9cb0aa71 (10 days ago), 2023-12-11 14:35:13 -0700
    • Engine revision 54a7145303
    • Dart version 3.2.3
    • DevTools version 2.28.4
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and
      upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at /opt/android-sdk-linux
    • Platform android-33, build-tools 33.0.2
    • ANDROID_HOME = /opt/android-sdk-linux
    • ANDROID_SDK_ROOT = /opt/android-sdk-linux
    • Java binary at: /usr/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.7+7-Ubuntu-0ubuntu122.04.2)
    • All Android licenses accepted.

[✗] Chrome - develop for the web (Cannot find Chrome executable at google-chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[✗] Linux toolchain - develop for Linux desktop
    ✗ clang++ is required for Linux development.
      It is likely available from your distribution (e.g.: apt install clang), or can be downloaded from https://releases.llvm.org/
    ✗ CMake is required for Linux development.
      It is likely available from your distribution (e.g.: apt install cmake), or can be downloaded from https://cmake.org/download/
    ✗ ninja is required for Linux development.
      It is likely available from your distribution (e.g.: apt install ninja-build), or can be downloaded from https://github.com/ninja-build/ninja/releases
    ✗ pkg-config is required for Linux development.
      It is likely available from your distribution (e.g.: apt install pkg-config), or can be downloaded from
      https://www.freedesktop.org/wiki/Software/pkg-config/

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions).

[✓] Connected device (1 available)
    • Linux (desktop) • linux • linux-x64 • Ubuntu 22.04.2 LTS 5.10.102.1-microsoft-standard-WSL2

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 4 categories.

@espresso3389
Copy link
Owner

espresso3389 commented Dec 21, 2023

I've just quickly test the building process using ghcr.io/cirruslabs/flutter

docker run -it --rm ghcr.io/cirruslabs/flutter

with the following commands:

git clone https://github.com/espresso3389/pdfrx
cd pdfrx/example/
flutter build apk --release --verbose

And it generates app-release.apk successfully.

...
[        ] BUILD SUCCESSFUL in 4m 28s
[        ] 97 actionable tasks: 96 executed, 1 up-to-date
[        ] Some of the file system contents retained in the virtual file system are on file systems that Gradle doesn't
support watching. The relevant state was discarded to ensure changes to these locations are properly detected. You can
override this by explicitly enabling file system watching.
[        ] Stopped 1 worker daemon(s).
[ +324 ms] Running Gradle task 'assembleRelease'... (completed in 268.5s)
[        ] Calculate SHA1: LocalDirectory: '/pdfrx/example/build/app/outputs/flutter-apk'/app-release.apk
[ +194 ms] ✓  Built build/app/outputs/flutter-apk/app-release.apk (28.8MB).
[        ] "flutter apk" took 274,810ms.
[   +6 ms] ensureAnalyticsSent: 0ms
[        ] Running 0 shutdown hooks
[        ] Shutdown hooks complete
[        ] exiting with code 0

Only the issue I've found is that the example code does not have android.permission.INTERNET so that the release binary does not work correctly without adding it :(

@espresso3389
Copy link
Owner

@felix-synorex
Do you have any new info. about the issue? or did you already resolve the issue?

FYI; 0.3.1 fixes the example's android.permission.INTERNET issue anyway.

@astubenbord
Copy link

@espresso3389 Hi, I'm also facing this issue in GitHub Actions environment under Ubuntu when building the app. I'm using Flutter 3.16.5. I have attached the relevant log output below. Any ideas what the issue may be? I'm open to assist you if you have any questions.

Details

2024-01-09T22:01:22.3885265Z [22:01:22]: ▸ �[35m[        ] :pdfrx:mergeReleaseNativeLibs (Thread[Execution worker Thread 3,5,main]) completed. Took 0.153 secs.�[0m
2024-01-09T22:01:22.3888167Z [22:01:22]: ▸ �[35m[        ] :file_picker:prepareReleaseArtProfile (Thread[included builds,5,main]) completed. Took 0.003 secs.�[0m
2024-01-09T22:01:32.4405157Z [22:01:32]: ▸ �[35m[+10095 ms] :app:l8DexDesugarLibRelease (Thread[Execution worker,5,main]) completed. Took 12.376 secs.�[0m
2024-01-09T22:01:32.4407967Z [22:01:32]: ▸ �[35m[        ] AAPT2 aapt2-7.2.2-7984345-linux Daemon #0: shutdown�[0m
2024-01-09T22:01:32.5452925Z [22:01:32]: ▸ �[35m[ +101 ms] AAPT2 aapt2-7.2.2-7984345-linux Daemon #1: shutdown�[0m
2024-01-09T22:01:32.5455391Z [22:01:32]: ▸ �[35m[        ] AAPT2 aapt2-7.2.2-7984345-linux Daemon #2: shutdown�[0m
2024-01-09T22:01:32.5458007Z [22:01:32]: ▸ �[35m[        ] Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.�[0m
2024-01-09T22:01:32.5461432Z [22:01:32]: ▸ �[35m[        ] You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.�[0m
2024-01-09T22:01:32.5464919Z [22:01:32]: ▸ �[35m[        ] See https://docs.gradle.org/7.5/userguide/command_line_interface.html#sec:command_line_warnings�[0m
2024-01-09T22:01:32.5467411Z [22:01:32]: ▸ �[35m[        ] 551 actionable tasks: 550 executed, 1 up-to-date�[0m
2024-01-09T22:01:32.5469741Z [22:01:32]: ▸ �[35m[        ] FAILURE: Build failed with an exception.�[0m
2024-01-09T22:01:32.5472452Z [22:01:32]: ▸ �[35m[   +1 ms] * What went wrong:�[0m
2024-01-09T22:01:32.5554703Z [22:01:32]: ▸ �[35m[        ] Execution failed for task ':pdfrx:mergeReleaseNativeLibs'.�[0m
2024-01-09T22:01:32.5557836Z [22:01:32]: ▸ �[35m[        ] > A failure occurred while executing com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction�[0m
2024-01-09T22:01:32.5560901Z [22:01:32]: ▸ �[35m[        ]    > 2 files found with path 'lib/arm64-v8a/libpdfium.so' from inputs:�[0m
2024-01-09T22:01:32.5563563Z [22:01:32]: ▸ �[35m[        ]       - /tmp/build/build/pdfrx/intermediates/merged_jni_libs/release/out/arm64-v8a/libpdfium.so�[0m
2024-01-09T22:01:32.5566803Z [22:01:32]: ▸ �[35m[        ]       - /tmp/build/build/pdfrx/intermediates/cxx/RelWithDebInfo/3o6t283a/obj/arm64-v8a/libpdfium.so�[0m
2024-01-09T22:01:32.5569554Z [22:01:32]: ▸ �[35m[        ]      If you are using jniLibs and CMake IMPORTED targets, see�[0m
2024-01-09T22:01:32.5571853Z [22:01:32]: ▸ �[35m[        ]      https://developer.android.com/r/tools/jniLibs-vs-imported-targets�[0m
2024-01-09T22:01:32.5574010Z [22:01:32]: ▸ �[35m[        ] * Try:�[0m
2024-01-09T22:01:32.5575702Z [22:01:32]: ▸ �[35m[        ] > Run with --debug option to get more log output.�[0m
2024-01-09T22:01:32.5577657Z [22:01:32]: ▸ �[35m[        ] > Run with --scan to get full insights.�[0m
2024-01-09T22:01:32.5579276Z [22:01:32]: ▸ �[35m[        ] * Exception is:�[0m
2024-01-09T22:01:32.5581681Z [22:01:32]: ▸ �[35m[        ] org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':pdfrx:mergeReleaseNativeLibs'.�[0m
2024-01-09T22:01:32.5585173Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:142)�[0m
2024-01-09T22:01:32.5588380Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282)�[0m
2024-01-09T22:01:32.5591563Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:140)�[0m
2024-01-09T22:01:32.5595221Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:128)�[0m
2024-01-09T22:01:32.5598499Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77)�[0m
2024-01-09T22:01:32.5602030Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)�[0m
2024-01-09T22:01:32.5605640Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)�[0m
2024-01-09T22:01:32.5609160Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)�[0m
2024-01-09T22:01:32.5612474Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)�[0m
2024-01-09T22:01:32.5615699Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)�[0m
2024-01-09T22:01:32.5618955Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)�[0m
2024-01-09T22:01:32.5622132Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)�[0m
2024-01-09T22:01:32.5625222Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)�[0m
2024-01-09T22:01:32.5628824Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)�[0m
2024-01-09T22:01:32.5633092Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)�[0m
2024-01-09T22:01:32.5636542Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)�[0m
2024-01-09T22:01:32.5639690Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)�[0m
2024-01-09T22:01:32.5642845Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)�[0m
2024-01-09T22:01:32.5646207Z [22:01:32]: ▸ �[35m[   +4 ms] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)�[0m
2024-01-09T22:01:32.5649363Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)�[0m
2024-01-09T22:01:32.5652527Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)�[0m
2024-01-09T22:01:32.5655698Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)�[0m
2024-01-09T22:01:32.5658648Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:69)�[0m
2024-01-09T22:01:32.5661840Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:327)�[0m
2024-01-09T22:01:32.5665453Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:314)�[0m
2024-01-09T22:01:32.5669133Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:307)�[0m
2024-01-09T22:01:32.5795025Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:293)�[0m
2024-01-09T22:01:32.5797893Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:417)�[0m
2024-01-09T22:01:32.5800783Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:339)�[0m
2024-01-09T22:01:32.5803680Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)�[0m
2024-01-09T22:01:32.5806476Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)�[0m
2024-01-09T22:01:32.5809290Z [22:01:32]: ▸ �[35m[        ] 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)�[0m
2024-01-09T22:01:32.5812069Z [22:01:32]: ▸ �[35m[        ] 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)�[0m
2024-01-09T22:01:32.5814289Z [22:01:32]: ▸ �[35m[        ] 	at java.base/java.lang.Thread.run(Thread.java:829)�[0m
2024-01-09T22:01:32.5817932Z [22:01:32]: ▸ �[35m[        ] Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction�[0m
2024-01-09T22:01:32.5822181Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.workers.internal.DefaultWorkerExecutor$WorkItemExecution.waitForCompletion(DefaultWorkerExecutor.java:339)�[0m
2024-01-09T22:01:32.5825813Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.work.DefaultAsyncWorkTracker.lambda$waitForItemsAndGatherFailures$2(DefaultAsyncWorkTracker.java:130)�[0m
2024-01-09T22:01:32.5828703Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.Factories$1.create(Factories.java:31)�[0m
2024-01-09T22:01:32.5831278Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLocks(DefaultWorkerLeaseService.java:321)�[0m
2024-01-09T22:01:32.5834596Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLocks(DefaultWorkerLeaseService.java:304)�[0m
2024-01-09T22:01:32.5837637Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLock(DefaultWorkerLeaseService.java:309)�[0m
2024-01-09T22:01:32.5841022Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:126)�[0m
2024-01-09T22:01:32.5844434Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:92)�[0m
2024-01-09T22:01:32.5847585Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForAll(DefaultAsyncWorkTracker.java:78)�[0m
2024-01-09T22:01:32.5850590Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForCompletion(DefaultAsyncWorkTracker.java:66)�[0m
2024-01-09T22:01:32.5853457Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:244)�[0m
2024-01-09T22:01:32.5856394Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)�[0m
2024-01-09T22:01:32.5859536Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)�[0m
2024-01-09T22:01:32.5862624Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)�[0m
2024-01-09T22:01:32.5865770Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)�[0m
2024-01-09T22:01:32.5868982Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)�[0m
2024-01-09T22:01:32.5872301Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)�[0m
2024-01-09T22:01:32.5875598Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)�[0m
2024-01-09T22:01:32.5878705Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)�[0m
2024-01-09T22:01:32.5881741Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:221)�[0m
2024-01-09T22:01:32.5884841Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:204)�[0m
2024-01-09T22:01:32.5888119Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:187)�[0m
2024-01-09T22:01:32.5891143Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:165)�[0m
2024-01-09T22:01:32.5893854Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:89)�[0m
2024-01-09T22:01:32.5896558Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:40)�[0m
2024-01-09T22:01:32.5899106Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:53)�[0m
2024-01-09T22:01:32.5901563Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50)�[0m
2024-01-09T22:01:32.5904717Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)�[0m
2024-01-09T22:01:32.5908689Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)�[0m
2024-01-09T22:01:32.6032371Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)�[0m
2024-01-09T22:01:32.6036260Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)�[0m
2024-01-09T22:01:32.6039806Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)�[0m
2024-01-09T22:01:32.6042994Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)�[0m
2024-01-09T22:01:32.6046174Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)�[0m
2024-01-09T22:01:32.6049254Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)�[0m
2024-01-09T22:01:32.6051746Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:50)�[0m
2024-01-09T22:01:32.6053945Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:40)�[0m
2024-01-09T22:01:32.6056633Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)�[0m
2024-01-09T22:01:32.6060362Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)�[0m
2024-01-09T22:01:32.6063239Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)�[0m
2024-01-09T22:01:32.6066132Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)�[0m
2024-01-09T22:01:32.6068761Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)�[0m
2024-01-09T22:01:32.6071517Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)�[0m
2024-01-09T22:01:32.6074451Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29)�[0m
2024-01-09T22:01:32.6077991Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:124)�[0m
2024-01-09T22:01:32.6082322Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:80)�[0m
2024-01-09T22:01:32.6085594Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:58)�[0m
2024-01-09T22:01:32.6088456Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)�[0m
2024-01-09T22:01:32.6091083Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36)�[0m
2024-01-09T22:01:32.6093673Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:181)�[0m
2024-01-09T22:01:32.6096140Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:71)�[0m
2024-01-09T22:01:32.6098167Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.Either$Right.fold(Either.java:175)�[0m
2024-01-09T22:01:32.6100709Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59)�[0m
2024-01-09T22:01:32.6103371Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:69)�[0m
2024-01-09T22:01:32.6105962Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:47)�[0m
2024-01-09T22:01:32.6108815Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36)�[0m
2024-01-09T22:01:32.6112276Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25)�[0m
2024-01-09T22:01:32.6115246Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)�[0m
2024-01-09T22:01:32.6118167Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)�[0m
2024-01-09T22:01:32.6120960Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:110)�[0m
2024-01-09T22:01:32.6123889Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:56)�[0m
2024-01-09T22:01:32.6126467Z [22:01:32]: ▸ �[35m[        ] 	at java.base/java.util.Optional.orElseGet(Optional.java:369)�[0m
2024-01-09T22:01:32.6128947Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:56)�[0m
2024-01-09T22:01:32.6131723Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)�[0m
2024-01-09T22:01:32.6134683Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:73)�[0m
2024-01-09T22:01:32.6137404Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:44)�[0m
2024-01-09T22:01:32.6140700Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)�[0m
2024-01-09T22:01:32.6144470Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)�[0m
2024-01-09T22:01:32.6148112Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:89)�[0m
2024-01-09T22:01:32.6151001Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:50)�[0m
2024-01-09T22:01:32.6154374Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:114)�[0m
2024-01-09T22:01:32.6157618Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:57)�[0m
2024-01-09T22:01:32.6160758Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:76)�[0m
2024-01-09T22:01:32.6164731Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:50)�[0m
2024-01-09T22:01:32.6168660Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNoEmptySources(SkipEmptyWorkStep.java:254)�[0m
2024-01-09T22:01:32.6172938Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNoEmptySources(SkipEmptyWorkStep.java:209)�[0m
2024-01-09T22:01:32.6176089Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:88)�[0m
2024-01-09T22:01:32.6179627Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:56)�[0m
2024-01-09T22:01:32.6183552Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32)�[0m
2024-01-09T22:01:32.6187821Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21)�[0m
2024-01-09T22:01:32.6191665Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)�[0m
2024-01-09T22:01:32.6205438Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:43)�[0m
2024-01-09T22:01:32.6210369Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:31)�[0m
2024-01-09T22:01:32.6213672Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40)�[0m
2024-01-09T22:01:32.6217239Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:281)�[0m
2024-01-09T22:01:32.6220766Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40)�[0m
2024-01-09T22:01:32.6223709Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)�[0m
2024-01-09T22:01:32.6227176Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)�[0m
2024-01-09T22:01:32.6229950Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)�[0m
2024-01-09T22:01:32.6233628Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:44)�[0m
2024-01-09T22:01:32.6236823Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:33)�[0m
2024-01-09T22:01:32.6239599Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76)�[0m
2024-01-09T22:01:32.6243777Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:139)�[0m
2024-01-09T22:01:32.6247796Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:128)�[0m
2024-01-09T22:01:32.6251371Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77)�[0m
2024-01-09T22:01:32.6255685Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)�[0m
2024-01-09T22:01:32.6259890Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)�[0m
2024-01-09T22:01:32.6263305Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)�[0m
2024-01-09T22:01:32.6266495Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)�[0m
2024-01-09T22:01:32.6270031Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)�[0m
2024-01-09T22:01:32.6273557Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)�[0m
2024-01-09T22:01:32.6276951Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)�[0m
2024-01-09T22:01:32.6280098Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)�[0m
2024-01-09T22:01:32.6283657Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)�[0m
2024-01-09T22:01:32.6287311Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)�[0m
2024-01-09T22:01:32.6290858Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)�[0m
2024-01-09T22:01:32.6294164Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)�[0m
2024-01-09T22:01:32.6297254Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)�[0m
2024-01-09T22:01:32.6300505Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)�[0m
2024-01-09T22:01:32.6303772Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)�[0m
2024-01-09T22:01:32.6307028Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)�[0m
2024-01-09T22:01:32.6310331Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)�[0m
2024-01-09T22:01:32.6313756Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:69)�[0m
2024-01-09T22:01:32.6317088Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:327)�[0m
2024-01-09T22:01:32.6320860Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:314)�[0m
2024-01-09T22:01:32.6325016Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:307)�[0m
2024-01-09T22:01:32.6328715Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:293)�[0m
2024-01-09T22:01:32.6332242Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:417)�[0m
2024-01-09T22:01:32.6335370Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:339)�[0m
2024-01-09T22:01:32.6338408Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)�[0m
2024-01-09T22:01:32.6341325Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)�[0m
2024-01-09T22:01:32.6344521Z [22:01:32]: ▸ �[35m[        ] 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)�[0m
2024-01-09T22:01:32.6347615Z [22:01:32]: ▸ �[35m[        ] 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)�[0m
2024-01-09T22:01:32.6349761Z [22:01:32]: ▸ �[35m[        ] 	at java.base/java.lang.Thread.run(Thread.java:829)�[0m
2024-01-09T22:01:32.6352780Z [22:01:32]: ▸ �[35m[        ] Caused by: com.android.builder.merge.DuplicateRelativeFileException: 2 files found with path 'lib/arm64-v8a/libpdfium.so' from inputs:�[0m
2024-01-09T22:01:32.6362721Z [22:01:32]: ▸ �[35m[        ]  - /tmp/build/build/pdfrx/intermediates/merged_jni_libs/release/out/arm64-v8a/libpdfium.so�[0m
2024-01-09T22:01:32.6365731Z [22:01:32]: ▸ �[35m[        ]  - /tmp/build/build/pdfrx/intermediates/cxx/RelWithDebInfo/3o6t283a/obj/arm64-v8a/libpdfium.so�[0m
2024-01-09T22:01:32.6368344Z [22:01:32]: ▸ �[35m[        ] If you are using jniLibs and CMake IMPORTED targets, see�[0m
2024-01-09T22:01:32.6370629Z [22:01:32]: ▸ �[35m[        ] https://developer.android.com/r/tools/jniLibs-vs-imported-targets�[0m
2024-01-09T22:01:32.6373748Z [22:01:32]: ▸ �[35m[        ] 	at com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction.run(MergeNativeLibsTask.kt:216)�[0m
2024-01-09T22:01:32.6377311Z [22:01:32]: ▸ �[35m[        ] 	at com.android.build.gradle.internal.profile.ProfileAwareWorkAction.execute(ProfileAwareWorkAction.kt:74)�[0m
2024-01-09T22:01:32.6380493Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)�[0m
2024-01-09T22:01:32.6383541Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)�[0m
2024-01-09T22:01:32.6386663Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)�[0m
2024-01-09T22:01:32.6389943Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)�[0m
2024-01-09T22:01:32.6393404Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62)�[0m
2024-01-09T22:01:32.6396323Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)�[0m
2024-01-09T22:01:32.6398908Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)�[0m
2024-01-09T22:01:32.6402260Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)�[0m
2024-01-09T22:01:32.6406157Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)�[0m
2024-01-09T22:01:32.6409805Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)�[0m
2024-01-09T22:01:32.6413030Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)�[0m
2024-01-09T22:01:32.6416492Z [22:01:32]: ▸ �[35m[  +16 ms] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)�[0m
2024-01-09T22:01:32.6419792Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)�[0m
2024-01-09T22:01:32.6423076Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)�[0m
2024-01-09T22:01:32.6426217Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)�[0m
2024-01-09T22:01:32.6429313Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)�[0m
2024-01-09T22:01:32.6434291Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59)�[0m
2024-01-09T22:01:32.6579372Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$2(DefaultWorkerExecutor.java:205)�[0m
2024-01-09T22:01:32.6582240Z [22:01:32]: ▸ �[35m[        ] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)�[0m
2024-01-09T22:01:32.6585013Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:187)�[0m
2024-01-09T22:01:32.6587944Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:120)�[0m
2024-01-09T22:01:32.6590829Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:162)�[0m
2024-01-09T22:01:32.6593306Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.Factories$1.create(Factories.java:31)�[0m
2024-01-09T22:01:32.6595377Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249)�[0m
2024-01-09T22:01:32.6597804Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109)�[0m
2024-01-09T22:01:32.6600268Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:114)�[0m
2024-01-09T22:01:32.6602906Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:157)�[0m
2024-01-09T22:01:32.6609030Z [22:01:32]: ▸ �[35m[        ] 	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:126)�[0m
2024-01-09T22:01:32.6611446Z [22:01:32]: ▸ �[35m[        ] 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)�[0m
2024-01-09T22:01:32.6613380Z [22:01:32]: ▸ �[35m[        ] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)�[0m
2024-01-09T22:01:32.6614794Z [22:01:32]: ▸ �[35m[        ] 	... 5 more�[0m
2024-01-09T22:01:32.6616018Z [22:01:32]: ▸ �[35m[        ] * Get more help at https://help.gradle.org�[0m
2024-01-09T22:01:32.6617327Z [22:01:32]: ▸ �[35m[        ] BUILD FAILED in 5m 36s�[0m
2024-01-09T22:01:33.2004335Z [22:01:33]: ▸ �[35m[ +627 ms] Running Gradle task 'bundleRelease'... (completed in 337.2s)�[0m
2024-01-09T22:01:33.2018119Z [22:01:33]: ▸ �[35m[   +1 ms] "flutter appbundle" took 341,672ms.�[0m
2024-01-09T22:01:33.2039001Z [22:01:33]: ▸ �[35m[   +2 ms] Gradle task bundleRelease failed with exit code 1�[0m
2024-01-09T22:01:33.2047499Z [22:01:33]: ▸ �[35m[        ]�[0m
2024-01-09T22:01:33.2049218Z [22:01:33]: ▸ �[35m#0      throwToolExit (package:flutter_tools/src/base/common.dart:10:3)�[0m
2024-01-09T22:01:33.2051757Z [22:01:33]: ▸ �[35m#1      AndroidGradleBuilder.buildGradleApp (package:flutter_tools/src/android/gradle.dart:491:9)�[0m
2024-01-09T22:01:33.2054240Z [22:01:33]: ▸ �[35m<asynchronous suspension>�[0m
2024-01-09T22:01:33.2056314Z [22:01:33]: ▸ �[35m#2      AndroidGradleBuilder.buildAab (package:flutter_tools/src/android/gradle.dart:241:5)�[0m
2024-01-09T22:01:33.2058312Z [22:01:33]: ▸ �[35m<asynchronous suspension>�[0m
2024-01-09T22:01:33.2060524Z [22:01:33]: ▸ �[35m#3      BuildAppBundleCommand.runCommand (package:flutter_tools/src/commands/build_appbundle.dart:153:5)�[0m
2024-01-09T22:01:33.2062634Z [22:01:33]: ▸ �[35m<asynchronous suspension>�[0m
2024-01-09T22:01:33.2064188Z [22:01:33]: ▸ �[35m#4      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1350:27)�[0m
2024-01-09T22:01:33.2065602Z [22:01:33]: ▸ �[35m<asynchronous suspension>�[0m
2024-01-09T22:01:33.2066765Z [22:01:33]: ▸ �[35m#5      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)�[0m
2024-01-09T22:01:33.2067871Z [22:01:33]: ▸ �[35m<asynchronous suspension>�[0m
2024-01-09T22:01:33.2068926Z [22:01:33]: ▸ �[35m#6      CommandRunner.runCommand (package:args/command_runner.dart:212:13)�[0m
2024-01-09T22:01:33.2070135Z [22:01:33]: ▸ �[35m<asynchronous suspension>�[0m
2024-01-09T22:01:33.2071484Z [22:01:33]: ▸ �[35m#7      FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:348:9)�[0m
2024-01-09T22:01:33.2073174Z [22:01:33]: ▸ �[35m<asynchronous suspension>�[0m
2024-01-09T22:01:33.2074319Z [22:01:33]: ▸ �[35m#8      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)�[0m
2024-01-09T22:01:33.2075409Z [22:01:33]: ▸ �[35m<asynchronous suspension>�[0m
2024-01-09T22:01:33.2076637Z [22:01:33]: ▸ �[35m#9      FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:294:5)�[0m
2024-01-09T22:01:33.2078092Z [22:01:33]: ▸ �[35m<asynchronous suspension>�[0m
2024-01-09T22:01:33.2079228Z [22:01:33]: ▸ �[35m#10     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:112:9)�[0m
2024-01-09T22:01:33.2080301Z [22:01:33]: ▸ �[35m<asynchronous suspension>�[0m
2024-01-09T22:01:33.2081429Z [22:01:33]: ▸ �[35m#11     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)▸[0m
2024-01-09T22:01:33.2082499Z [22:01:33]: ▸ �[35m<asynchronous suspension>�[0m
2024-01-09T22:01:33.2083386Z [22:01:33]: ▸ �[35m#12     main (package:flutter_tools/executable.dart:90:3)�[0m
2024-01-09T22:01:33.2084313Z [22:01:33]: ▸ �[35m<asynchronous suspension>�[0m

@espresso3389 espresso3389 reopened this Jan 10, 2024
@espresso3389
Copy link
Owner

@astubenbord
The following lines indicates that the build process founds two libpdfium.so:

Execution failed for task ':pdfrx:mergeReleaseNativeLibs'.�[0m
> A failure occurred while executing com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction�[0m
> 2 files found with path 'lib/arm64-v8a/libpdfium.so' from inputs:�[0m
 - /tmp/build/build/pdfrx/intermediates/merged_jni_libs/release/out/arm64-v8a/libpdfium.so�[0m
- /tmp/build/build/pdfrx/intermediates/cxx/RelWithDebInfo/3o6t283a/obj/arm64-v8a/libpdfium.so�[0m

Anyway, it's your app's issue and it may be fixed by adding packagingOptions { picFirst '**/libpdfium.so' } to your app's
build.gradle; pickFirst is used to choose one of the multiple so files of identical name.

@astubenbord
Copy link

Similarly to @felix-synorex. adding packagingOptions to the build.gradle did not work. Weirdly though the build seems to successfully run on my Windows machine using the same flutter version.

@espresso3389 espresso3389 reopened this Jan 11, 2024
@espresso3389
Copy link
Owner

Mmm...😑 I have no idea...

@bziembanski
Copy link

I was able to fix that issue by adding

packagingOptions {
  pickFirst '**/libpdfium.so'
}

in the build.gradle of pdfrx package in pub-cache. For me the location was ~/.pub-cache/hosted/pub.dev/pdfrx-0.4.8/android/build.gradle

@espresso3389 espresso3389 added question Further information is requested help wanted Extra attention is needed labels Jan 18, 2024
@Ritik-even
Copy link

Fixed the issue by upgrading to 7.4.2.

@HeropolisDa2ny
Copy link
Contributor

HeropolisDa2ny commented Jul 2, 2024

I was able to fix that issue by adding

packagingOptions {
  pickFirst '**/libpdfium.so'
}

in the build.gradle of pdfrx package in pub-cache. For me the location was ~/.pub-cache/hosted/pub.dev/pdfrx-0.4.8/android/build.gradle

Personally it is not working, I am still getting the same error
> A failure occurred while executing com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction
   > 2 files found with path 'lib/arm64-v8a/libpdfium.so' from inputs:
      - /Users/_/Projects/front-flutter/build/pdfrx/intermediates/merged_jni_libs/debug/out/arm64-v8a/libpdfium.so
      - /Users/_/Projects/front-flutter/build/pdfrx/intermediates/cxx/Debug/3p4usq1y/obj/arm64-v8a/libpdfium.so
     If you are using jniLibs and CMake IMPORTED targets, see
     https://developer.android.com/r/tools/jniLibs-vs-imported-targets
Graddle pdfrx -> android
android {
    if (project.android.hasProperty("namespace")) {
        namespace 'jp.espresso3389.pdfrx'
    }

    // Bumping the plugin compileSdkVersion requires all clients of this plugin
    // to bump the version in their app.
    compileSdkVersion 33

    // Use the NDK version
    // declared in /android/app/build.gradle file of the Flutter project.
    // Replace it with a version number if this plugin requires a specfic NDK version.
    // (e.g. ndkVersion "23.1.7779620")
    ndkVersion android.ndkVersion

    // Invoke the shared CMake build with the Android Gradle Plugin.
    externalNativeBuild {
        cmake {
            version "3.18.1+"
            path "CMakeLists.txt"
        }
    }

    sourceSets {
        main.jniLibs.srcDirs += '.lib/latest'
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        minSdkVersion 21
    }
    
    packagingOptions {
        pickFirst '**/libpdfium.so'
    }
}

Also I'm not sure it is the right solution to make a patch on this gradle ~/.pub-cache/hosted/pub.dev/pdfrx-[used-version]/android/build.gradle. Since you make updates locally on project collaboration it won't be effective except if you're using a docker. But the most constraining is that it would have to be applied for every update.

Does anyone have found an another solution to this problem ?
@espresso3389 @bziembanski

@bziembanski
Copy link

Unfortunately no. The weird thing is, it only occurs on linux in my project. No other person on my team has this issue - they use macOS and Windows.

@HeropolisDa2ny
Copy link
Contributor

HeropolisDa2ny commented Jul 2, 2024

Unfortunately no. The weird thing is, it only occurs on linux in my project. No other person on my team has this issue - they use macOS and Windows.

Well well well...
Personally I'm on MacOS so it doesn't seems related to the OS.
And I hadn't this problem last week but this one : #178

@espresso3389
Copy link
Owner

espresso3389 commented Jul 3, 2024

Basically, it should be in app level build.gradle. Not in pdfrx's.

The error implies that you are using several plugins that contains its own libpdfium.so; one is pdfrx and other plugins. So, the resolution of conflict is an app issue.

@bziembanski
Copy link

I thought the same and tried editing the project gradle many times. It didn't work, the only thing that worked for me was editing the pdfrx package gradle.
This issue isn't a big deal for my team, because it somehow only affects me, but something somewhere is wrong. It might be some Linux specific error - maybe flutter/dart implementation quirk? No idea 🤷‍♂️

@espresso3389
Copy link
Owner

I think there two possible and ultimate solutions:

  • Add packagingOptions on pdfrx's build.gradle
  • Rename libpdfium.so to something different

The first one's drawback is that pdfrx may potentially use libpdfium.so from another source and it may break the consistency (sometimes causes runtime exception).

The second one is safer but it may make the final output package (apk or such) larger. It may contain several instances of libpdfium.so inside the package.

How do you guys think about these options?

@espresso3389 espresso3389 reopened this Jul 3, 2024
@espresso3389
Copy link
Owner

@HeropolisDa2ny I cannot accept your PR #197 without further discussion. It's just your configuration and not ours.

@HeropolisDa2ny
Copy link
Contributor

HeropolisDa2ny commented Jul 3, 2024

@espresso3389

Yes sure, and the PR was dysfunctioning the dl open because of the exclusion from the lib.
However using pickFirst could make it work:

    packagingOptions {
        pickFirst 'lib/x86/libpdfium.so'
        pickFirst 'lib/x86_64/libpdfium.so'
        pickFirst 'lib/armeabi-v7a/libpdfium.so'
        pickFirst 'lib/arm64-v8a/libpdfium.so'
    }

Anyway, in the error the conflict comes from these two paths

  • /Users/_/Projects/front-flutter/build/pdfrx/intermediates/merged_jni_libs/debug/out/arm64-v8a/libpdfium.so
  • /Users/_/Projects/front-flutter/build/pdfrx/intermediates/cxx/Debug/3p4usq1y/obj/arm64-v8a/libpdfium.so

I don't get why applying packagingOptions in the gradle would sometimes causes runtime exception unless you don't add any other libpdfium.so ?

However if the second option is safer I would go to the safest one.

@espresso3389
Copy link
Owner

I've searched the actual reason why Gradle causes errors but nothing explain me the actual reason. Some said it's just a bug of Gradle. But if so, why no one tried to fix the bug.

@HeropolisDa2ny
So, how does it work if you write the same packagingOptions inside app's build.gradle? Doesn't it work?

#133 (comment) suggests pickFirst '**/libpdfium.so' but not pickFirst 'lib/x86/libpdfium.so'.

@HeropolisDa2ny
Copy link
Contributor

HeropolisDa2ny commented Jul 8, 2024

I've searched the actual reason why Gradle causes errors but nothing explain me the actual reason. Some said it's just a bug of Gradle. But if so, why no one tried to fix the bug.

@HeropolisDa2ny So, how does it work if you write the same packagingOptions inside app's build.gradle? Doesn't it work?

#133 (comment) suggests pickFirst '**/libpdfium.so' but not pickFirst 'lib/x86/libpdfium.so'.

Maybe because the problem of the gradle is too minor so nobody is working on it (as it seems to be non systematic depending on devices).

"write the same packagingOptions inside app's build.gradle" is not working.

pickFirst '**/libpdfium.so' is not working.

Why couldn't we merge #204 as a temporary fix so that we don't have to apply the fix on every new release. And also it would maybe make new people using your package and do not stop using it as soon as they cannot build their app.

@espresso3389
Copy link
Owner

espresso3389 commented Jul 8, 2024

"write the same packagingOptions inside app's build.gradle" is not working.
pickFirst '**/libpdfium.so' is not working.

No no, my question is, does pickFirst 'lib/x86/libpdfium.so' on app's build.gradle works for you?

Why couldn't we merge #204 as a temporary fix so that we don't have to apply the fix on every new release. And also it would maybe make new people using your package and do not stop using it as soon as they cannot build their app.

I actually didn't understand the basis of the workaround. Without fully understanding the effect, I don't want to accept such workaround.

Futhermore, on my projects, I didn't face such errors. And no one actually provide me with any realistic example or such. I cannot check anything about the problem.

@HeropolisDa2ny
Copy link
Contributor

HeropolisDa2ny commented Jul 8, 2024

"write the same packagingOptions inside app's build.gradle" is not working.
pickFirst '**/libpdfium.so' is not working.

No no, my question is, does pickFirst 'lib/x86/libpdfium.so' on app's build.gradle works for you?

Why couldn't we merge #204 as a temporary fix so that we don't have to apply the fix on every new release. And also it would maybe make new people using your package and do not stop using it as soon as they cannot build their app.

I actually didn't understand the basis of the workaround. Without fully understanding the effect, I don't want to accept such workaround.

Futhermore, on my projects, I didn't face such errors. And no one actually provide me with any realistic example or such. I cannot check anything about the problem.

This setting option is working fine with me (as I work with different phone OS) only when it is applied on the used version of the package (it is not workign when I'm using it in my app graddle):

packagingOptions {
        pickFirst 'lib/x86/libpdfium.so'
        pickFirst 'lib/x86_64/libpdfium.so'
        pickFirst 'lib/armeabi-v7a/libpdfium.so'
        pickFirst 'lib/arm64-v8a/libpdfium.so'
}

It just pick the first libpdfium.so instead of not being able to decide the one to use. It's a temporary fix so that everybody doesn't have to fix it by themself at every version.

Moreover it's pretty hard to give your realistic example to you reproduce the bug since we just added the package to our pubspec but if you want we can try to setup a meeting to we look from where does the problem can potentially comes.

@espresso3389
Copy link
Owner

If it's too difficult to reproduce the issue with simple example, I think it is not worth to workaround the issue on pdfrx side because only few people are suffer from the issue; they should implement the workaround on their app.

But if it is very easy to reproduce, and almost everyone faces the issue, I also want to reproduce it and then consider to implement the workaround on pdfrx side.

@espresso3389
Copy link
Owner

Or,.... Should I merge the PR without checking anything??? Should I? Everyone, please comment some.

@HeropolisDa2ny
Copy link
Contributor

HeropolisDa2ny commented Jul 8, 2024

Or,.... Should I merge the PR without checking anything??? Should I? Everyone, please comment some.

I mean if it does works fine with the fix on your app then it should normally doesn't break the versions of others and also fix the versions of the ones who get the problem so ...

We can just keep it as a temporary fix - keep the issue open and as soon as gradle make their fix or we find another safer/better way then apply a new fix.

But I'm not sure that making every people who encounter that bug, to temporary fix it by changing the version files of their cache, is the greatest solution even more when it's a cooperative project.

@espresso3389
Copy link
Owner

I need at least one more person who pushes me to accept the PR.
Currently, only you and me, the points are even :(

@HeropolisDa2ny
Copy link
Contributor

I need at least one more person who pushes me to accept the PR. Currently, only you and me, the points are even :(

@bziembanski @astubenbord @felix-synorex ?

@bziembanski
Copy link

In my project it only happens to me, so I don't know if I'm eligible to decide that, because I'm the only one I know that experiences that problem.

@Jonbeckas
Copy link

In my project it only happens in the ci android build, but windows android build was fine. The pickFirst config fixed that, but only when I add it to the build.gradle of pdfrx not if I added it to the build.gradle of the app. But I also think that it is just a symptom of a deeper problem, that we should find instead of hotfixing it.

@astubenbord
Copy link

For me it's essentially the same scenario @Jonbeckas faces, it also only happened in my ci builds. Is it possible to do this with environment variables? I.e. Only include the snippet if the evn variable is set? Not sure how technically feasible this is but may be an option which doesnt break other peoples builds but also allows us to temporarily fix our builds?

@espresso3389
Copy link
Owner

@astubenbord I'm not a Gradle professional, but if anyone can create a PR to conditionally enable packagingOptions, it is acceptable.

@Jonbeckas
Copy link

I think the bug could be related to the libarary declared in the build.gradle

    sourceSets {
        main.jniLibs.srcDirs += '.lib/latest'
    }

and in the CMakeLists.txt. When i remove the jniLibs part it also works for me, but I am still investigating

@espresso3389
Copy link
Owner

@Jonbeckas
Normally, without .lib/latest, pdfrx does not have its own libpdfium.so.
In your situation, some other package(s) provides libpdfium.so; that's the actual reason why we need packagingOptions here.

@espresso3389
Copy link
Owner

After several hours of investigation, I finally decided to merge PR #204 anyway. There might be several side effects but the possibilities are so small. The risk can be acceptable.

If any issues found in future, I or someone will file a new issue.

@espresso3389
Copy link
Owner

1.0.78 contains the fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed question Further information is requested
Projects
None yet
Development

No branches or pull requests

7 participants