当前位置: 首页 > news >正文

android pdf框架,编译mupdf

因为mupdf编译的体积不小,之前也发过编译的文章,现在更新一下.

建一个mupdf_c目录,名字自己取,在里面git下载mupdf源码,把目录修改为libmupdf

mupdf_c目录下建build.gradle文件,内容如下

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 的发布,// 运行./gradlew publishMupdfPublicationToLocalRepoRepository发布到下面定义的mupdf_c// ./gradlew publishMupdfPublicationToMavenLocal发布到.m2下面// ./gradlew publishMupdfPublicationToRemoteRepoRepository则是发布到远程,要配置远程仓库//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 34buildToolsVersion '34.0.0'defaultConfig {minSdkVersion 16targetSdkVersion 29externalNativeBuild.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文件也要一个,内容:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.artifex.mupdf.fitz" />

然后运行:./gradlew publishMupdfPublicationToMavenLocal 就可以发布了.发完在自己工程最外的build.gradle加入mavenLocal()仓库,就可以引用到了,加两处.

http://www.lryc.cn/news/101333.html

相关文章:

  • 线性表详细讲解
  • 代码随想录算法训练营day45
  • 机器学习深度学习——softmax回归(上)
  • 基于express调用chatgpt文字流输出和有道智云语音合成
  • (学习笔记-内存管理)内存分段、分页、管理与布局
  • PHP使用Redis实战实录1:宝塔环境搭建、6379端口配置、Redis服务启动失败解决方案
  • 【数据结构】这堆是什么
  • FFmpeg 音视频开发工具
  • Go 语言 select 都能做什么?
  • Hive之窗口函数lag()/lead()
  • Vite+Typescript+Vue3学习笔记
  • 二、SQL-6.DCL-2).权限控制
  • [OpenStack] GPU透传
  • 无涯教程-jQuery - Progressbar组件函数
  • [SQL挖掘机] - 窗口函数 - rank
  • VBAC多层防火墙技术的研究-状态检测
  • PHP8的数据类型-PHP8知识详解
  • 明晚直播:可重构计算芯片的AI创新应用分享!
  • flask 点赞系统
  • 关于Java的多线程实现
  • 如何判断某个视频是深度伪造的?
  • ESP32(MicroPython) 四足机器人(一)
  • 力扣刷题记录---利用python实现链表的基本操作
  • OpenAI重磅官宣ChatGPT安卓版本周发布,现已开启下载预约,附详细预约教程
  • PHP 支付宝支付、订阅支付(周期扣款)整理汇总
  • python-pytorch基础之神经网络回归
  • linux中通过.desktop文件执行bash命令打开chrome浏览器并传参
  • ChatGPT的应用与发展趋势:解析人工智能的新风口
  • 使用maven打jar包时,如何只把依赖的其它jar中的类打进jar包,没有依赖的其它jar包的类文件不打进来?
  • arm neon/fpu/mfloat