2015-08-08 3 views
11

Я пытался настроить Android Studio для NDk, следуя статье this и статье this. Ниже приведено содержание моего gradle-wrapper.propertiesКак настроить проект NDK в Android Studio 1.3

#Sat Aug 08 09:36:53 IST 2015 
distributionBase=GRADLE_USER_HOME 
distributionPath=wrapper/dists 
zipStoreBase=GRADLE_USER_HOME 
zipStorePath=wrapper/dists 
distributionUrl=https\://services.gradle.org/distributions/gradle-2.5-all.zip 

Ниже приводится содержанием build.gradle (проект)

// Top-level build file where you can add configuration options common to all sub-projects/modules. 

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle-experimental:0.2.0' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

и, наконец, build.gradle (модуль)

apply plugin: 'com.android.model.application' 

model { 
    android { 
     compileSdkVersion = 22 
     buildToolsVersion = "23.0.0 rc3" 

     defaultConfig.with { 
      applicationId = "com.opaxlabs.nativetest" 
      minSdkVersion.apiLevel = 15 
      targetSdkVersion.apiLevel = 22 
      versionCode = 1 
      versionName = "1.0" 
     } 
     android.buildTypes { 
      release { 
       minifyEnabled = false 
       proguardFiles += file('proguard-rules.pro') 
      } 
     } 
    } 
    android.ndk{ 
     moduleName = "native" 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.2.1' 
} 

при попытке синхронизировать файлы Gradle я получаю следующее сообщение об ошибке:

Error:No such property: android for class: com.android.build.gradle.managed.AndroidConfig 

следующие пути определены в local.properties

ndk.dir=/opt/adt-bundle-linux-x86_64-20140702/sdk/ndk-bundle 
sdk.dir=/opt/adt-bundle-linux-x86_64-20140702/sdk 

так это выглядит, как я пропустил что-то только я не могу найти его. Любая помощь будет принята с благодарностью.

ответ

21

В вашем build.gradle (модуль), то android.buildTypes блок должен внешней стороне андроид блока. Так оно и должно выглядеть следующим образом:

model { 
    android { 
     compileSdkVersion = 22 
     buildToolsVersion = "23.0.0 rc3" 

     defaultConfig.with { 
      applicationId = "com.opaxlabs.nativetest" 
      minSdkVersion.apiLevel = 15 
      targetSdkVersion.apiLevel = 22 
      versionCode = 1 
      versionName = "1.0" 
     } 
    } 
    android.buildTypes { 
     release { 
      minifyEnabled = false 
      proguardFiles += file('proguard-rules.pro') 
     } 
    } 
    android.ndk{ 
     moduleName = "native" 
    } 
} 
+0

Помогает много, спасибо! – Roman

+0

Для тех, кто переходит с 0.2.0 до 0.4.0. ПРИМЕЧАНИЕ: + = больше не работает в 0.4.0, см. Http://tools.android.com/tech-docs/new-build-system/gradle-experimental # TOC-0.2.x --- 0.4.0 – skyfishjy

1

Вы объявляете свой путь NDK в файле Local.property ??

Похож путем среды и local.properties файлы, указывающие на разные места:

PATH: C:\Program Files (x86)\Android\android-ndk-r9d 

local.properties: C: \ Program Files (x86) \ Android \ Android-студия \ андроид-NDK -r9d

Убедитесь, что это правильно. Вы можете сохранить PATH и отказаться от declerations local.properties, а затем попробовать эту команду через консоль: ndk-build -? чтобы увидеть, если он был найден в PATH

+0

Нет необходимости объявлять 'NDK Path' от Android Studio ** 1.3 **. Теперь он задан в разделе «Структура проекта». «Местоположение SDK» – Mackovich

+1

Никогда не используйте пути с пробелами для NDK. Android SDK может быть недоволен, если в его пути есть пробелы. –

-2
NDK Build option 

ndk { 
    moduleName "SeePlusPlus" // Name of C++ module (i.e. libSeePlusPlus) 
    cFlags "-std=c++11 -fexceptions" // Add provisions to allow C++11 functionality 
    stl "gnustl_shared" // Which STL library to use: gnustl or stlport 
} 
+0

извините за downvote, но ваш скрипт gradle не соблюдает синтаксис Gradle 2.5. Пожалуйста, посмотрите здесь: http://tools.android.com/tech-docs/new-build-system/gradle-experimental – Mackovich

Смежные вопросы