This repository is a fork of meganz/PdfiumAndroid, which itself is based on barteksc/PdfiumAndroid.
This fork is updated to SDK 35 / NDK 28 and delivers a working AAR compatible with Android 15 (16KB page size support).
Version 2.0.2 - Significant updates to the build layer and compatibility improvements warrant a major version bump from the original 1.9.0.
- Android SDK 35 and NDK 28 compatibility
- Android Gradle Plugin 8.9.2 support
- Java 17 requirement (configured via
gradle.properties) - BuildConfig generation fixed for library modules
- Native library packaging corrected in AAR
- 16KB page size support for Android 15
- Windows Git Bash compatible build script
- Updated to PDFium 142.0.7415.0
- Java 17+ (required for AGP 8.9.2+)
- Android NDK 28.2.13676358
- Git Bash (for Windows users)
- Ninja build tool - https://github.com/ninja-build/ninja/releases
Remark: you might need to update the NDK_ROOT environment variable in the build.sh script to point to your NDK (preferrably v28+)
# Run the build script to compile native libraries
./build.sh
# Optional: Build specific components
./build.sh --build-png --build-freetype
Remark: you might need to update the 'javaHome' environment variable in the gradle.properties file to point to your Java 17 installation
# Build debug AAR
./gradlew assembleDebug
# Build release AAR
./gradlew assembleRelease
# Output: build/outputs/aar/PdfiumAndroid-2.0.2-release.aar- Copy
PdfiumAndroid-2.0.2-release.aarto your app'slibs/folder - Add to your app's
build.gradle:
dependencies {
implementation files('libs/PdfiumAndroid-2.0.2-release.aar')
implementation 'androidx.core:core:1.16.0'
}repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.yourusername:PdfiumAndroid:v2.0.2'
}import com.shockwave.pdfium.PdfiumCore;
import com.shockwave.pdfium.PdfDocument;
// Initialize
PdfiumCore pdfiumCore = new PdfiumCore(context);
// Open PDF
PdfDocument pdfDocument = pdfiumCore.newDocument(parcelFileDescriptor);
// Use the library...- Updated
build.gradlefor AGP 8.9.2 compatibility - Added
buildFeatures { buildConfig = true } - Added
buildConfigFieldforVERSION_NAME - Fixed
jniLibs.srcDirpath for native libraries - Configured Java 17 in
gradle.properties
- Updated
build.shto use ninja (for windows) - Updated
build.shto copylibjniPdfium.soto correct location - Fixed AAR packaging to include all required
.sofiles - Ensured compatibility with NDK 28
- Added 16KB page size support via
ANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON - Updated manifest and build configuration
- Original work: barteksc/PdfiumAndroid
- 16KB page size foundation: meganz/PdfiumAndroid
- Add a
CMakeLists.txtfor building PdfiumAndroid.sofile. - Update libpng v1.6.44 and libfreetype2 v2.10.0 binaries for building PdfiumAndroid library.
Same as original project - check the LICENSE file.