2015-08-08 89 views
11

我一直在嘗試通過以下this文章和this文章配置Android Studio for NDk文章。以下是我gradle-wrapper.properties如何在Android Studio 1.3中配置NDK項目

#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塊需要的的Android塊之外。因此,它應該是這樣的:

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

你有沒有在Local.property文件中聲明你的NDK路徑?

貌似環境路徑和文件local.properties都指向不同的位置:

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

local.properties:C:\ Program Files文件(x86)的\ Android的\ Android的工作室\ Android的NDK -r9d

確保哪個是正確的。您可以保留PATH並刪除local.properties的錯誤,然後通過控制檯嘗試以下命令:ndk-build - ?看它是否在PATH

+0

不需要聲明'NDK Path'由於Android工作室** 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