- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Android Studio 2.1.2 中使用 Gradle 2.10 和实验性插件 0.7.2 工作。我正在尝试将共享库链接到我的 JNI 源文件。我正在查看实验性插件 docs和 hello-lib样本。
Hello-lib app/build.gradle 中有这部分:
android.ndk {
platformVersion = 21
moduleName = 'hello-libs'
toolchain = 'clang'
stl = 'gnustl_static'
cppFlags.addAll(['-std=c++11'])
ldLibs.addAll(['android', 'log'])
// build a default combined apk including all ABIs.
// abiFilters.addAll(['x86'])
}
android.sources {
main {
jni {
dependencies {
library 'gmath' linkage 'shared'
// if gperf were *.a, change shared --> static
library 'gperf' linkage 'shared'
}
}
}
}
所以我做了类似的事情,我的 app/build.gradle:
apply plugin: 'com.android.model.application'
def jniDir = "src/main/jni/"
def nLibDir = "src/main/jniLibs/"
model {
repositories {
libs(PrebuiltLibraries) {
RAWExtractor {
headers.srcDir = "${nLibDir}include"
binaries.withType(SharedLibraryBinary) {
sharedLibraryFile = file("${nLibDir}${targetPlatform.getName()}/libRAWExtractor.so")
}
}
}
}
android {
compileSdkVersion = 24
buildToolsVersion = "24.0.0"
defaultConfig {
applicationId = "xyz.jamescarroll.layer"
minSdkVersion.apiLevel = 21
targetSdkVersion.apiLevel = 23
versionCode = 1
versionName = "1.0"
}
ndk {
moduleName = 'jni'
stl = 'gnustl_shared'
platformVersion = 21
toolchain = "clang"
cppFlags.addAll(['-v', '-std=c++11', '-fexceptions'])
ldFlags.addAll(['-I' + file("/src/main/jniLibs/include"),
'-L' + file("${nLibDir}")])
ldLibs.addAll(['android', 'log'])
}
sources {
main {
jni {
dependencies {
library "RAWExtractor" linkage 'shared'
}
}
}
}
buildTypes {
release {
minifyEnabled = false
proguardFiles.add(file('proguard-rules.pro'))
}
}
productFlavors {
// for detailed abiFilter descriptions, refer to "Supported ABIs" @
// https://developer.android.com/ndk/guides/abis.html#sa
create("arm") {
ndk.abiFilters.add("armeabi")
}
create("arm7") {
ndk.abiFilters.add("armeabi-v7a")
}
create("arm8") {
ndk.abiFilters.add("arm64-v8a")
}
create("x86") {
ndk.abiFilters.add("x86")
}
create("x86-64") {
ndk.abiFilters.add("x86_64")
}
create("mips") {
ndk.abiFilters.add("mips")
}
create("mips-64") {
ndk.abiFilters.add("mips64")
}
// To include all cpu architectures, leaves abiFilters empty
create("all")
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.0.0'
compile 'com.android.support:design:24.0.0'
compile 'com.android.support:support-v4:24.0.0'
compile 'com.android.support:cardview-v7:24.0.0'
compile 'com.android.support:recyclerview-v7:24.0.0'
compile 'jp.wasabeef:recyclerview-animators:2.2.3'
compile 'uk.co.markormesher:android-fab:1.2.1'
}
我的问题是,在 main{jni{}} 中有一些东西,在 ndk{} 中有一个 moduleName 我在 gradle 同步期间得到:
Error:No such property: srcDir for class: org.gradle.api.internal.file.DefaultSourceDirectorySet
Possible solutions: srcDirs
我不知道为什么会这样,我一直在努力研究这个,但我没能找到任何关于这个和更新的插件的信息。如果我注释掉 main{jni{}} 或 moduleName 中的所有内容,我可以同步项目,但其他部分会中断。
项目结构(没有足够的代表链接到图片):
|app
|src
|main
|jni
jni.c
// etc
|jniLibs
|{platform} // (armeabi, armeabi-v7a, arm64-v8a, etc.)
libRAWExtractor.so
有谁知道如何设置依赖关系和模块名称?或者,有谁知道如何使用实验性插件 0.7.2 链接共享库?
最佳答案
你必须改变这个 DSL 声明
headers.srcDir = "${nLibDir}include"
到
headers.srcDir "${nLibDir}include"
关于java - 在 ndk{} 中使用 moduleName 时如何设置 JNI 依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38127787/
use Modulename;有什么区别吗和 use Modulename(); ? 有时我会看到,例如 use Carp;有时 use Carp (); 最佳答案 如 documented , us
在 ruby 中,我开始看到一种非常正常的做法,包括引用为::ModuleName::ClassName 的模块和混合,而在过去它几乎只是 ModuleName::ClassName。 我想在这里
我想知道你如何确定你刚刚使用 API 在 ghc 中加载的文件的 ModuleName。 如果您查看 Documentation在 API 中,他们总是假设您在加载文件之前知道模块名称。 我已经尝试对
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 12 个月前关闭。 Improve
在我创建的工作 python 目录中: packagename/__init__.py packagename/modulename.py test.py 在 modulename.py 中我创建了一
我目前正在使用 Flask/Blueprint 使我的简单应用程序更加模块化。 我的目录是这样的: Jobscraperapp/ application.py modules/
我有一个混合了 Obj-C 和 Swift 的项目,我在让我的单元测试正常工作时遇到了一些问题。 我正在使用 @testable import moduleName 指令导入我的文件,但它似乎没有导入
我是新的 Angular,我必须在我的项目中实现服务器端分页,所以我做了所有事情,就像在这个例子中所做的那样: Server Side Pagination In Angularjs Tutorial
我的这个新 vb.net 项目 (MedicalCost) 出现此错误“‘MedicalCost.Constants’的类型初始值设定项引发异常。”当运行子程序时..我已经在之前的项目中完成了此操作,
我在尝试编译一个使用同一目录中的模块的简单 fortran 程序时遇到问题。我有 2 个文件:包含程序的 test1.f90 和包含模块的 modtest.f90。 这是 test1.f90: pro
我试图从 linq 查询中获取字符串值“Admin”,但是当我这样做时: string oldModule = dc.Modules .Whe
在从official documentation学习react JS时页面,到目前为止一切正常,现在当我尝试从另一个页面中的另一个页面导出一种方法时,如下所示(每个片段顶部的文件名) src/Gree
我似乎对以下调用的工作方式有点困惑: string str = Process.GetCurrentProcess().MainModule.ModuleName; 我知道这与执行以下操作相同: Pr
我有以下 Swift 类 public class Model : NSObject { override init() { (...) } class func fil
我在 python 包分发中做了我的第一步。 不幸的是,我有 ModuleNotFoundError从 pip 成功安装后。 我的目录布局非常简单: maindir |- setup.py
我正在尝试创建一个简单的Elm项目,仅插入“hello world!”串成div。 这是我的代码: index.html: ELM Course
我一直在一个小项目中使用 Jest,但在使用 Jest 模拟时遇到了问题。我有一个实用程序文件,用于导出命名的自定义错误构造函数。我需要在我的测试文件中模拟这些函数。我不想使用 Jest 文档中显示的
我在react-native源代码中看到了类似var Animated = require('Animated')的代码。但是没有路径如何解决这个问题? 我的猜测是,打包程序将通过注册等方式进行预处理
我有一个带有 swift 和 ObjC 源代码的项目,在自动生成的头文件中有一条奇怪的消息: 标记错误的代码: //interface in ModuleName-Swift.h file @int
出现标题这样的错误大概是: 1、模块加载了两次,所以php -i|grep Configure,看一下配置文件和配置include的目录,对于这些文件中是否有同名的module 2、动态加载模块
我是一名优秀的程序员,十分优秀!