PDFNet ライブラリを Android アプリに統合しようとしています。SDK をダウンロードすると、プロジェクト CompleteReader (PDFNetAndroid-6.7.0.42960\PDFNetAndroid\samples\PDFViewCtrlProjects\CompleteReader) があることがわかります。このプロジェクトを使用したい私のアプリのモジュールとして、build.gradle「com.android.application」を「com.android.library」に変更しました
元の build.gradle は次のとおりです。
description = 'This is a more complete demo app that showcases PDFViewCtrl and the Tools library and its controls.'
apply plugin: 'com.android.application'
repositories {
mavenCentral()
}
buildscript {
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.trello:victor:0.1.4'
}
}
apply plugin: 'com.android.application'
apply plugin: 'com.trello.victor'
dependencies {
compile fileTree(include: '*.jar', dir: 'libs')
compile project(':PDFViewCtrlTools')
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.tonicartos:superslim:0.4.13'
}
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0.0"
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
res.srcDirs = ['res']
jniLibs.srcDirs = ['libs']
svg.srcDir 'src/main/svg'
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
debug {
// Set package name to <app package>.debug to be able to install both debug and release apk on the same device
applicationIdSuffix ".debug"
}
}
lintOptions {
// If true, stop the gradle build if errors are found
abortOnError false
//ignore 'ValidFragment'
}
productFlavors {
armv7a {
ndk {
abiFilters "armeabi-v7a"
}
}
arm {
ndk {
abiFilters "armeabi"
}
}
x86 {
ndk {
abiFilters "x86"
}
}
armv8 {
ndk {
abiFilters "arm64-v8a"
}
}
x86_64 {
ndk {
abiFilters "x86_64"
}
}
fat {
ndk {
abiFilters "armeabi-v7a", "armeabi", "arm64-v8a", "x86", "x86_64"
}
}
}
}
task copyLibsToSamples << {
['libs'
].each { dest ->
copy {
from ('../../../lib/full') {
include '**/*.so'
}
into dest
}
}
}
task copyJarToSamples(type: Copy) {
['../../../lib/src/PDFViewCtrlTools/libs'
].each { dest ->
copy {
from ('../../../lib') {
include 'PDFNet.jar'
}
into dest
}
}
}
task copyResources << {
['res/raw'].each { dest ->
copy {
from ('../../../resource') {
include '*.plugin'
}
into dest
}
}
}
task setupSample(dependsOn: [copyLibsToSamples, copyJarToSamples, copyResources])
preBuild.dependsOn setupSample
この元のファイルは問題なくコンパイルされますが、ライブラリを変更するとビルドされないため、どこかで読んだことが問題である可能性があるため、以下を削除しました。
repositories {
mavenCentral()
}
OK、この変更により、ビルドを続行できるようです。次のエラーは、解決できなかった次の 2 つの参照に関するものでした (元のファイルが変更されていない場合、これはすべて機能します!!!)。
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.tonicartos:superslim:0.4.13'
私はこのファイルで非常に多くのことを試しましたが、運が悪かったので、必要のないすべての部分を削除し、jcenter と mavencentral を移動し、追加し、削除しました。これは私の現在の build.gradle でもありません仕事:
description = 'This is a more complete demo app that showcases PDFViewCtrl and the Tools library and its controls.'
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
classpath 'com.trello:victor:0.1.4'
}
}
apply plugin: 'com.android.library'
apply plugin: 'com.trello.victor'
dependencies {
repositories {
mavenCentral()
jcenter()
}
compile fileTree(include: '*.jar', dir: 'libs')
compile project(':PDFViewCtrlTools')
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile project(':superslim-0.4.13')
compile 'com.jakewharton:butterknife:7.0.1'
}
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
res.srcDirs = ['res']
jniLibs.srcDirs = ['libs']
svg.srcDir 'src/main/svg'
}
}
lintOptions {
// If true, stop the gradle build if errors are found
abortOnError false
//ignore 'ValidFragment'
}
}
task wrapper(type: Wrapper) {
gradleVersion = '2.2'
}
何を変更しても、モジュールをコンパイルできません。タスク CompleteReader:compileDebugJavaWithJavac の実行に失敗しました。R が生成されていないため、多くの「定数式が必要です」と表示されます。繰り返しますが、「アプリケーション」を「ライブラリ」に変更する前に、すべて正常に動作し、プロジェクトを携帯電話などにインストールできます。
何が悪いのか考えはありますか?私はすでに運がなければこれに3日間取り組んでいます!