- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
所以我想将所有文件和子目录包含在一个 flavors 文件结构中。我在这里所做的是将所有 jar 和 so 文件包含在 libs 文件夹中,但我还想包含目录。
我试过 include include ['*']
但没用。我也四处寻找了一段时间的答案,但没有找到答案。实现这一目标的正确方法是什么?
dependencies {
//format for including lib files for all flavors
compile fileTree(dir: 'libs', include: ['*.jar'])
//format for including all jars and so's in pdf flavor
//pdfCompile fileTree(dir: 'libs', include: ['*.jar'])
pdfCompile fileTree(dir: 'src/pdf/libs', include: ['*.jar','*.so'])
}
运行应用程序时,以下异常告诉我并非所有 .so 文件都包含在内。
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.company.appname-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]] couldn't find "libPDFNetC-v7a.so"
编辑:下面是我的文件结构。仅供引用:src 是我的模块的子项,并且是 libs 的兄弟。
最佳答案
我想我可以通过改变我的搜索条件找到解决方案,但对于那些犯同样错误的人,我将展示我是如何解决这个问题的。
似乎真正的问题是,当使用 flavorCompile filetree 方法时,gradle 只能处理指定 libs 文件夹中的 jar 文件。
您可以通过在 android 下的 sourceSets 中指定一个 flavor.jniLibs.srcDir
来克服这个问题。对于下面的文件结构(在我拒绝展示的模块中),您可以像这样分离一个 flavors libs 文件。
apply plugin: 'com.android.library'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
publishNonDefault true
defaultConfig {
minSdkVersion 16
targetSdkVersion 21
}
//product flavors merge their respective folders in src with main
productFlavors{
pdf{}
nopdf{}
}
buildTypes {
release{
minifyEnabled false
//proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug{ minifyEnabled false }
}
sourceSets{
pdf.jniLibs.srcDirs = ['src/pdf/libs']
}
}
dependencies {
//format for including lib jar files for all flavors
compile fileTree(dir: 'libs', include: ['*.jar'])
//libs jar files for specific flavor
pdfCompile fileTree(dir: 'src/pdf/libs', include: ['*.jar'])
}
关于android - Gradle 将所有内容都包含在一个 flavors libs 文件夹中(编译 fileTree 整个 libs 文件夹)编辑 : set sourcedir per flavor for so files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28354641/
我该死地使用 wix 和 wixtoolset 3.11 build设置。是的,它的 hell 。使用此工具集做简单的事情并阅读手册会消耗大量时间和金钱。 我的目标:安装程序应该下载并安装 .NET
我正在运行 heat 来生成一个 wxs 文件。代码如下。 我想将 dir.prompts 中的所有文件添加到安装程序中的 wxs 文件中。我将其添加为自动构建过程的一部分(因此一旦生成 wxs 文件
使用 WiX,我如何检测 SourceDir 中是否存在特定文件?文件夹? 我有以下 WiX 片段,旨在确定 Adobe Reader 安装程序是否已分发到与我的 MSI 文件相同的文件夹中,如果是,
WiX 文件似乎总是包含这一行: 什么是“SourceDir”?它是干什么用的?这不是真正的目录名称。它有什么神奇的值(value)吗? 最佳答案 来自:https://robmensching.c
我正在尝试添加 sourceDirs到基于名为 model 的源集添加的模块.该模块由 gradle-apt-plugin 自动添加. 我试过的 我已经能够将 sourceSet 添加到主模块: id
我正在与Microsoft Team Foundation Server一起工作,到目前为止,MSDN在提供我所需的所有信息以及更多方面方面都很棒,除了一个地方。 我正在创建一个自动生成,并在“工作区
为TFS构建创建build definition时,有一个名为Source Settings的部分,如下所示,在快照中,我们必须定义1)源代码管理文件夹和2)Build Agent文件夹。 据我了解,
所以我想将所有文件和子目录包含在一个 flavors 文件结构中。我在这里所做的是将所有 jar 和 so 文件包含在 libs 文件夹中,但我还想包含目录。 我试过 include include
我是一名优秀的程序员,十分优秀!