我正在尝试使用ARToolkit中的ntfSimpleProj示例。 我设置了环境变量:
export ANDROID_HOME = / media / applica / Storage / Android / Sdk; export ANDROID_NDK_ROOT = $ ANDROID_HOME / ndk-bundle; export NDK = $ ANDROID_NDK_ROOT;
在我成功构建android文件夹./build.sh和./build_native_examples.sh
中的两个脚本之后但是gradle的构建会给我带来这个错误:
错误:尝试从给定规则android.sources {...} @nftSimple / build.gradle第40行第5列的模型元素'android.sources'的只写视图中读取属性'main'
这是我的gradle文件:
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 22
buildToolsVersion = "23.0.3"
defaultConfig.with {
applicationId = "org.artoolkit.ar.samples.NftSimple"
minSdkVersion.apiLevel = 15
targetSdkVersion.apiLevel = 22
versionCode = 1 //Integer type incremented by 1 for every release, major or minor, to Google store
versionName = "1.0" //Real fully qualified major and minor release description
buildConfigFields.with { //Defines fields in the generated Java BuildConfig class, in this case, for
create() { //default config, that can be accessed by Java code
type = "int" //e.g. "if (1 == BuildConfig.VALUE) { /*do something*/}".
name = "VALUE" //See: [app or lib]/build/generated/source/buildConfig/[package path]/
value = "1" // BuildConfig.java
}
}
ndk.with {
moduleName = "NftSimple"
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
android.productFlavors {
}
android.sources {
main.jni {
source {
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 22
buildToolsVersion = "23.0.3"
defaultConfig.with {
applicationId = "org.artoolkit.ar.samples.NftSimple"
minSdkVersion.apiLevel = 15
targetSdkVersion.apiLevel = 22
versionCode = 1 //Integer type incremented by 1 for every release, major or minor, to Google store
versionName = "1.0" //Real fully qualified major and minor release description
buildConfigFields.with { //Defines fields in the generated Java BuildConfig class, in this case, for
create() { //default config, that can be accessed by Java code
type = "int" //e.g. "if (1 == BuildConfig.VALUE) { /*do something*/}".
name = "VALUE" //See: [app or lib]/build/generated/source/buildConfig/[package path]/
value = "1" // BuildConfig.java
}
}
ndk.with {
moduleName = "NftSimple"
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
android.productFlavors {
}
android.sources {
srcDirs = ['src/main/nop']
}
}
main.jniLibs {
source {
srcDirs = ['src/main/libs']
}
}
}
}
dependencies {
//compile 'com.android.support:support-v4:23.0.1'
//compile 'com.android.support:appcompat-v7:23.0.1' //Only required when the target device API level is greater than
compile project(':aRBaseLib')
} //the compile and target of the app being deployed to the device
有人可以帮助我吗?
非常感谢!
答案 0 :(得分:0)
我修正了错误,我必须更改gradle中的sources声明。
由此:
android.sources {
srcDirs = ['src/main/nop']
}
}
main.jniLibs {
source {
srcDirs = ['src/main/libs']
}
}
}
对此:
android.sources {
main{
jni {
source {
srcDirs "src/main/nop"
}
}
jniLibs {
source {
srcDirs "src/main/libs"
}
}
}
}