因?yàn)閙updf編譯的體積不小,之前也發(fā)過編譯的文章,現(xiàn)在更新一下.
建一個mupdf_c目錄,名字自己取,在里面git下載mupdf源碼,把目錄修改為libmupdf
mupdf_c目錄下建build.gradle文件,內(nèi)容如下
apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
group = 'com.artifex.mupdf'
version = '1.22.2'
buildscript {
repositories {
maven {
url "https://maven.aliyun.com/repository/public"
}
maven {
url "https://maven.aliyun.com/repository/google"
}
maven { url "https://jitpack.io" }
google()
mavenCentral()
maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
maven { url "https://kotlin.bintray.com/kotlinx/" }
}
dependencies {
classpath 'com.android.tools.build:gradle:7.4.1'
}
}
allprojects {
repositories {
maven {
url "https://maven.aliyun.com/repository/public"
}
maven {
url "https://maven.aliyun.com/repository/google"
}
maven { url "https://jitpack.io" }
google()
mavenCentral()
maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
maven { url "https://kotlin.bintray.com/kotlinx/" }
}
}
publishing {
publications {
// 定義一個名為 mupdf 的發(fā)布,
// 運(yùn)行./gradlew publishMupdfPublicationToLocalRepoRepository發(fā)布到下面定義的mupdf_c
// ./gradlew publishMupdfPublicationToMavenLocal發(fā)布到.m2下面
// ./gradlew publishMupdfPublicationToRemoteRepoRepository則是發(fā)布到遠(yuǎn)程,要配置遠(yuǎn)程倉庫
//maven {
// name = "remoteRepo"
// url = "http://my.org/repo"
//}
mupdf(MavenPublication) {
groupId = "com.artifex.mupdf"
artifactId = "mupdf-fitz"
version = '1.0-SNAPSHOT'
// 必須有這個 否則不會上傳AAR包
afterEvaluate { artifact(tasks.getByName("bundleReleaseAar")) }
// 上傳source,這樣使用方可以看到方法注釋
//artifact generateSourcesJar
}
}
repositories {
maven {
// 基于版本名稱選擇不同的倉庫地址
def releasesRepoUrl = "file:///Users/archko/pdf/mupdf_c/"
def snapshotsRepoUrl = "file:///Users/archko/pdf/mupdf_c/"
name = 'localRepo'
// url是必須要配置的
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
// 倉庫用戶名密碼
//credentials {
// username = "root"
// password = "root"
//}
}
}
}
android {
compileSdkVersion 34
buildToolsVersion '34.0.0'
defaultConfig {
minSdkVersion 16
targetSdkVersion 29
externalNativeBuild.ndkBuild.arguments '-j4'
// Set ABI_FILTERS in your gradle.properties file
//if (project.hasProperty('ABI_FILTERS')) {
// ndk.abiFilters = []
// ndk.abiFilters.addAll(ABI_FILTERS.split(',').collect{it as String})
//}
ndk{
abiFilters "arm64-v8a" //,"armeabi-v7a"
}
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs 'libmupdf/platform/java/src'
}
}
externalNativeBuild {
ndkBuild.path 'libmupdf/platform/java/Android.mk'
}
android.ndkVersion '25.2.9519653'
}
其它文件如gradle.properties,gradle目錄,gradlew從別的工程弄過來就可以了.
manifest文件也要一個,內(nèi)容:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.artifex.mupdf.fitz" />文章來源:http://www.zghlxwxcb.cn/news/detail-617732.html
然后運(yùn)行:./gradlew publishMupdfPublicationToMavenLocal 就可以發(fā)布了.發(fā)完在自己工程最外的build.gradle加入mavenLocal()倉庫,就可以引用到了,加兩處.文章來源地址http://www.zghlxwxcb.cn/news/detail-617732.html
到了這里,關(guān)于android pdf框架,編譯mupdf的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!