2016-11-14 2 views
0

Я пытаюсь использовать пример ntfSimpleProj от ARToolkit. я задать переменные среды:Ошибка построения шкалы ARToolkit

export ANDROID_HOME=/media/applica/Storage/Android/Sdk; export ANDROID_NDK_ROOT=$ANDROID_HOME/ndk-bundle; export NDK=$ANDROID_NDK_ROOT;

после того, как я строю успешно два сценария в андроида ./build.sh папки и ./build_native_examples.sh

но сборка Gradle вернуть мне эту ошибку:

Error:Attempt to read property 'main' from a write only view of model element 'android.sources' given to rule android.sources { ... } @ nftSimple/build.gradle line 40, column 5

это мой 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 

Может s omeone помочь мне?

Большое спасибо!

ответ

0

Я исправил ошибку, мне нужно изменить объявление источников в градиенте.

Отсюда:

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" 
      } 
     } 
    } 
}