2016-01-08 5 views
5

मैं मॉड्यूल के साथ प्रोजेक्ट बनाने की कोशिश कर रहा हूं जो एनडीके का उपयोग करता है। लेकिन ग्रैडल बिल्ड त्रुटि देता है।ग्रेडल प्रयोगात्मक प्लगइन का उपयोग कर एनडीके मॉड्यूल कैसे बनाया जाए?

यह मेरा build.gradle (मुख्य परियोजना)

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

    //  classpath 'com.android.tools.build:gradle-experimental:0.1.0' 
     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

जब मैं इस Gradle उपयोग करने का प्रयास है: कॉम: यह देता है त्रुटि '(17, 0) आईडी के साथ प्लगइन त्रुटि' 1.5.0। android.model.application 'नहीं मिला।'

दूसरी ओर, यदि मैं ग्रेडल-प्रयोगात्मक का उपयोग करता हूं: 0.1.0 यह त्रुटि देता है ' त्रुटि: (17, 0) आईडी' com.android.application 'के साथ प्लगइन नहीं मिला।'

मैं इस त्रुटि को कैसे हल कर सकता हूं? मेरे पास मेरे प्रोजेक्ट में कई मॉड्यूल हैं। मैं सभी मॉड्यूल को संतुष्ट करने के साथ कैसे हल कर सकता हूं?

संपादित:

build.gradle (मुख्य परियोजना)

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
//  classpath 'com.android.tools.build:gradle:1.5.0' 

     classpath 'com.android.tools.build:gradle-experimental:0.4.0' 
     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

def isReleaseBuild() { 
    return isTag() && !isSnapshot() 
} 

def isSnapshot() { 
    return version.contains("SNAPSHOT") 
} 

boolean isTravis() { 
    return System.getenv('TRAVIS_BUILD_NUMBER') ? true : false 
} 

boolean isTag() { 
    def tag = System.getenv('TRAVIS_TAG') 
    return !(tag == null || tag.isEmpty()) 
} 

def buildNumber() { 
    return System.getenv('TRAVIS_BUILD_NUMBER') ?: "0" 
} 

build.gradle (एप्लिकेशन)

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

repositories { 
    maven { 
     url "https://oss.sonatype.org/content/repositories/snapshots" 
    } 
    maven { 
     url "https://oss.sonatype.org/content/repositories/releases" 
    } 
    maven { 
     url "https://oss.sonatype.org/content/repositories/staging" 
    } 
} 

model { 

    android { 
     compileSdkVersion = 22 
     buildToolsVersion = "22.0.1" 

     defaultConfig.with { 
      applicationId = "com.ToxicBakery.viewpager.transforms" 
      minSdkVersion.apiLevel = 16 
      targetSdkVersion.apiLevel = 22 
      versionCode = 1 
      versionName = "1.0" 
     } 
    } 
    android.buildTypes { 
     release { 
      minifyEnabled = false 
      proguardFiles += file('proguard-rules.txt') 
     } 
    } 
    android.lintOptions { 
     checkReleaseBuilds = false 
    } 
} 

dependencies { 
    compile 'com.android.support:appcompat-v7:22.1.1' 
    compile 'com.android.support:cardview-v7:22.0.0' 
    compile 'info.hoang8f:fbutton:1.0.5' 
    compile project(':contextMenu') 
    compile project(':library') 
    compile project(':library2') 
    compile project(':titanic') 
    compile files('libs/universal-image-loader-1.9.4.jar') 
    compile project(':staggeredview') 
    compile project(':min3d') 
} 

build.gradle (ContextMenu)

apply plugin: 'com.android.model.library' 
model { 
    android { 
     compileSdkVersion = 21 
     buildToolsVersion = "21.1.2" 

     defaultConfig.with { 
      minSdkVersion.apiLevel = 11 
      targetSdkVersion.apiLevel = 21 
     } 

    } 
    android.lintOptions { 
     checkReleaseBuilds = false 
    } 
} 

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

build.gradle (पुस्तकालय)

apply plugin: 'com.android.model.library' 
apply plugin: 'signing' 

model { 
    android { 
     compileSdkVersion = 22 
     buildToolsVersion = "22.0.1" 

     defaultConfig.with { 
      minSdkVersion.apiLevel = 13 
      targetSdkVersion.apiLevel = 22 
      versionCode = 1 
      versionName = "1.0" 
     } 

    } 
    android.buildTypes { 
     release { 
      minifyEnabled = false 
      proguardFiles += file('proguard-rules.txt') 
     } 
    } 
    android.lintOptions { 
     checkReleaseBuilds = false 
    } 
} 
dependencies { 
    compile 'com.android.support:support-v13:22.1.1' 
} 

apply from: '../maven_push.gradle' 

build.gradle (library2)

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

model { 
    android { 
     compileSdkVersion = 22 
     buildToolsVersion = "22.0.1" 

     defaultConfig.with { 
      minSdkVersion.apiLevel = 15 
      targetSdkVersion.apiLevel = 22 
      versionCode = 1 
      versionName = "1.0" 
     } 

    } 
    android.buildTypes { 
     release { 
      minifyEnabled = false 
      proguardFiles += file('proguard-rules.txt') 
     } 
    } 
    android.lintOptions { 
     checkReleaseBuilds = false 
    } 
} 

dependencies { 
} 

build.gradle (min3d)

apply plugin: 'com.android.model.library' 
model { 
    android { 
     compileSdkVersion = 15 
     buildToolsVersion = "21.0.2" 
     defaultConfig.with { 
      minSdkVersion.apiLevel = 15 
      targetSdkVersion.apiLevel = 22 
      versionCode = 1 
      versionName = "1.0" 
     } 
    } 
    android.buildTypes { 
     debug { 

     } 
     release { 
      minifyEnabled = false 
      proguardFiles += file('proguard-rules.txt') 
     } 
    } 
    android.productFlavors { 
    } 
    android.lintOptions { 
     checkReleaseBuilds = false 
    } 
} 

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

build.gradle (staggerdview)

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

dependencies { 
    compile 'com.android.support:support-v4:19.1.+' 
} 

model { 
    android { 
     compileSdkVersion = 22 
     buildToolsVersion = "22.0.1" 

     defaultConfig.with { 
      minSdkVersion.apiLevel = 15 
      targetSdkVersion.apiLevel = 22 
      versionCode = 1 
      versionName = "1.0" 
     } 

    } 
    android.buildTypes { 
     release { 
      minifyEnabled = false 
      proguardFiles += file('proguard-rules.txt') 
     } 
    } 
    android.lintOptions { 
     checkReleaseBuilds = false 
    } 
} 

build.gradle (टाइटैनिक)

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

model { 
    android { 
     compileSdkVersion = 22 
     buildToolsVersion = '22.0.1' 

     defaultConfig.with { 
      minSdkVersion.apiLevel = 11 
      targetSdkVersion.apiLevel = 19 
      versionCode = 1 
      versionName = "1.0" 
     } 
    } 

    android.buildTypes{ 
     release { 
      minifyEnabled = false 
      proguardFiles += file('proguard-rules.txt') 
     } 
    } 
    android.lintOptions { 
     checkReleaseBuilds = false 
    } 
} 

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

उत्तर

5

आप NDK प्रयोजन के लिए प्रयोगात्मक प्लगइन का उपयोग करना चाहिए:

तो अपने build.gradle (मुख्य परियोजना) तरह दिखेगा:

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

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

और निर्माण।

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

model { 
    android { 
     compileSdkVersion = 23 
     buildToolsVersion = "23.0.2" 

     defaultConfig.with { 
      applicationId = "com.sample.codecator" 
      minSdkVersion.apiLevel = 19 
      targetSdkVersion.apiLevel = 19 
     } 
    } 
} 

आप किसी भी पुस्तकालय मॉड्यूल का उपयोग कर रहे हैं तो इसके build.gradle तरह दिखेगा::

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

model { 
    android { 
     compileSdkVersion = 23 
     buildToolsVersion = "23.0.2" 

     defaultConfig.with { 
      minSdkVersion.apiLevel = 19 
      targetSdkVersion.apiLevel = 19 
     } 
    } 
} 

आप android{...} ब्लॉक से बाहर निम्नलिखित रखना चाहिए:

android.buildTypes 
android.sources 
android.productFlavors 
Gradle (ऐप्लिकेशन) की तरह दिखाई देगा

पसंद:

model { 

android { 
      compileSdkVersion = 23 
      buildToolsVersion = "23.0.2" 

      defaultConfig.with { 
       minSdkVersion.apiLevel = 19 
       targetSdkVersion.apiLevel = 19 
      } 


    android.buildTypes { 
    release { 
     minifyEnabled = false 
     proguardFiles.add(file("proguard-rules.pro")) 
     } 
    } 
    android.productFlavors { 
     // 
    } 

    android.sources { 
     // 
    } 
} 

को अपने local.properties फ़ाइल में सेट करना न भूलें।

अपने सभी फाइलों में अद्यतन

अद्यतन android.buildTypes कोड इस तरह:

android.buildTypes { 
     release { 
      minifyEnabled = false 
      proguardFiles.add(file("proguard-rules.pro")) 
     } 
    } 
+0

मैं मॉड्यूल की तरह सभी मॉड्यूल के Gradle {...} को बदलने के लिए है? – shj

+0

मुझे लगता है कि हाँ, क्योंकि आप 'com.android.tools.build: gradle-experimental: 0.4.0' gradle प्लगइन का उपयोग कर रहे हैं और यह केवल' com.android.model.application'' का समर्थन करेगा। –

+0

मैं 'com.android.library' के बजाय 'com.android.model.library' पर सभी मॉड्यूल बदल रहा हूं। लेकिन अचानक यह दूसरी त्रुटि देता है - "त्रुटि: संपत्ति नहीं मिल सका 'एंड्रॉइड' कार्य पर ': लाइब्रेरी: androidJavadocs'।" क्या आप मेरी मदद कर सकते हैं कि इस त्रुटि का क्या अर्थ है? – shj

संबंधित मुद्दे