2013-11-21 16 views
28

बनाने में विफल रहता है मुझे अपनी ऐप प्रोजेक्ट बनाने के लिए बड़ी समस्या हो रही है।एंड्रॉइड स्टूडियो - लाइब्रेरी प्रोजेक्ट के साथ ऐप

मुख्य अनुप्रयोग:

Project Structure

इस मॉड्यूल से प्रत्येक के लिए gradle.build है: मैं मुख्य अनुप्रयोग मॉड्यूल और एक पुस्तकालय परियोजना मॉड्यूल के रूप में नीचे देख सकते हैं

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.6.+' 
    } 
} 
apply plugin: 'android' 
repositories { 
    mavenCentral() 
} 
android { 
    compileSdkVersion 19 
    buildToolsVersion '19.0.0' 

    defaultConfig { 
     minSdkVersion 14 
     targetSdkVersion 19 
    } 
    buildTypes { 
     release { 
      runProguard true 
      proguardFile getDefaultProguardFile('proguard-android-optimize.txt') 
     } 
    } 
    productFlavors { 
     defaultFlavor { 
      proguardFile 'proguard-rules.txt' 
     } 
    } 
} 
dependencies { 
    compile 'com.android.support:support-v13:19.0.+' 
    compile 'com.google.android.gms:play-services:4.0.+' 
    compile project(':libraries:datetimepicker') 
} 

और यह पुस्तकालय परियोजना के लिए है:

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.6.+' 
    } 
} 
apply plugin: 'android-library' 

repositories { 
    mavenCentral() 
} 

android { 
    compileSdkVersion 19 
    buildToolsVersion "19.0.0" 

    defaultConfig { 
     minSdkVersion 14 
     targetSdkVersion 19 
    } 
    release { 
     runProguard true 
     proguardFile 'proguard-rules.txt' 
     proguardFile getDefaultProguardFile('proguard-android-ptimize.txt') 
    } 
} 

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

अंत में, यह प्रोजेक्ट सेटिंग्स है .gradle फ़ाइल।

include ':App', ':libraries:datetimepicker' 

मैं सफलतापूर्वक मेरी अनुप्रयोग कोड के लिए पुस्तकालय से संकुल आयात और उन्हें इस्तेमाल करने में सक्षम हूँ, लेकिन जब मैं मैं संकलित करने के लिए निम्न प्रयास करें:

Gradle: Execution failed for task ':App:compileDefaultFlavorDebug'. 
> Compilation failed; see the compiler error output for details. 

E:\blah\blah\MyClass.java 
Gradle: error: cannot find symbol class DatePickerDialog 
Gradle: error: package DatePickerDialog does not exist 
Gradle: error: cannot find symbol class DatePickerDialog 
Gradle: error: cannot find symbol class DatePickerDialog 
Gradle: error: cannot find symbol variable DatePickerDialog 
Gradle: error: method does not override or implement a method from a supertype 

मैं ठीक करने की कोशिश कर रहा है यह अब 3 दिनों के लिए है और लगभग सभी समान प्रश्न समाधानों को समाप्त कर दिया है जो मैं यहां पा सकता हूं। मैं एंड्रॉइड के विकास के साथ बहुत आश्वस्त हूं, धीरे-धीरे धीरे-धीरे विश्वास नहीं करता हूं और शायद कुछ गलत तरीके से गलत कर चुका हूं।

कुछ अतिरिक्त जानकारी:

  • एंड्रॉयड स्टूडियो v0.3.6
  • Android SDK बिल्ड-उपकरण Rev 19
  • Gradle संस्करण 1,8

इसे ठीक करने पर कोई भी विचार?

उत्तर

65

जब ग्रैडल लाइब्रेरी प्रोजेक्ट बनाता है, तो यह रिलीज प्रकार का निर्माण कर रहा है भले ही आप अपने मुख्य ऐप के लिए डीबग प्रकार बना रहे हों (यह bug है)। आपकी लाइब्रेरी प्रोजेक्ट में, आपके पास प्रोजेवार्ड आपके रिलीज बिल्ड प्रकार के लिए कॉन्फ़िगर किया गया है, और प्रोगार्ड प्रतीक नामों को खराब कर रहा है, जिससे उन्हें आपके ऐप में अदृश्य बना दिया जा सकता है।

चूंकि आप लाइब्रेरी कोड को नियंत्रित करते हैं, तो सबसे अच्छी बात यह है कि अपने पुस्तकालय के निर्माण में प्रोगार्ड को न चलाएं, और केवल इसे अपने मुख्य ऐप के रिलीज के लिए चलाएं। यह निर्भरता समेत सभी कोड को खराब कर देगा।

यदि आप वास्तव में लाइब्रेरी कोड को स्वतंत्र रूप से खराब करना चाहते हैं, तो आपको पुस्तकालय के सार्वजनिक प्रतीकों का खुलासा करने के लिए प्रोग्रार्ड नियम स्थापित करना होगा, DatePickerDialog एक होना।

+0

किंवदंती! पूरी तरह से काम किया! – Gyroscope

+1

मेरा अनुच्छेद दूसरे दिन svaed। – sschrass

+0

बहुत ज्यादा थक गया है, मैं सेट minify को गलत में बदलता हूं, और सफलता का निर्माण – weigan

0

बस स्पष्ट Gradle कि अपने पुस्तकालय परियोजना जोड़ने/संशोधित धारा

android/buildTypes/debug 
अपने पुस्तकालय परियोजना की निर्माण के

द्वारा न्यूनतम किया गया नहीं किया जा रहा चाहिए बताता है।Gradle फ़ाइल इस तरह (झूठी minifyEnabled है कुंजी):

android { 
... 
    buildTypes { 
     debug { 
      debuggable true 
      minifyEnabled false 
     } 
... 
    } 
... 
} 

नोट:

यहाँ, मैं भी स्पष्ट Gradle मेरे 'डिबग' बनाने के लिए डीबग निर्माण हिदायत (डीबग करने योग्य सच)।

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