2015-06-21 7 views
7

से v4 समर्थन लाइब्रेरी कैसे बनाएं I स्रोत sice से v4 समर्थन लाइब्रेरी बनाने का प्रयास कर रहा हूं मैंने लाइब्रेरी का एक हिस्सा संशोधित किया है। मैं इसे उबंटू 13.10 पर धीरे-धीरे करने की कोशिश कर रहा हूं। मैंने इस answer में निर्देशों का पालन किया, लेकिन अब मैं अटक गया हूं। मैंने उबंटू के साथ ग्रेड 1.10 का उपयोग किया जब से मैंने इसे विंडोज़ पर बनाने की कोशिश की, यह कहा गया कि विंडोज़ समर्थित नहीं था और उबंटू पर धीरे-धीरे 2.4 के साथ यह कहा गया कि ग्रेड 1.10 संस्करण था जो समर्थित था। जब मैंस्रोत

gradle clean jar --stacktrace 

साथ निर्माण प्रयास करते समय मुझे IllegalStateException मिलती रहती है: LLVM-रु-सीसी याद आ रही है, इस स्टैक ट्रेस के एक हिस्से को जो मैं बार आ रही है

Caused by: java.lang.IllegalStateException: llvm-rs-cc is missing 
    at com.android.builder.AndroidBuilder.compileAllRenderscriptFiles(AndroidBuilder.java:1281) 
    at com.android.builder.AndroidBuilder$compileAllRenderscriptFiles.call(Unknown Source) 
    at com.android.build.gradle.tasks.RenderscriptCompile.taskAction(RenderscriptCompile.groovy:99) 
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63) 
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:219) 
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:212) 
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:201) 
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:533) 
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:516) 
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80) 
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61) 

पूरे स्टैकट्रेस है here

मैंने AndroidBuilder.java पर स्रोत कोड को देखने का प्रयास किया और इसने कोई प्रकाश नहीं छोड़ा है। मैंने भी कहा कि llvm-rs-cc फ़ाइल को android-sdk-linux/build-tools से कई फ़ोल्डर्स में कॉपी करने का प्रयास किया। मैंने BuildToolInfo.java में टिप्पणी की तरह और build-tools, tools, and platform-tools के पथ के रूप में मेरे पथ पर llvm-rs-cc बाइनरी का मार्ग जोड़ा है, जो मुझे विश्वास है कि मैंने एंड्रॉइड एसडीके प्रबंधक का उपयोग करके डाउनलोड किया है। मैंने पुष्टि की कि पथ को पुनरारंभ करने के बाद printenv कमांड का उपयोग करके जोड़ा गया था।

मैं क्या गलत कर रहा हूं?

उत्तर

9

ऐसा लगता है कि कि कि मैं plaform/frameworks/support में local.properties फ़ाइल को संपादित करने के लिए आवश्यक SDK निर्देशिका

sdk.dir=/path/to/android-sdk-linux/ 

यह वास्तव में पूरे LLVM-रु-सीसी shenenigans गायब हो गए लेकिन जोड़ना जोड़ने के लिए, यानी ... वहाँ अधिक

stackoverflow जवाब है कि मैं इस आदेश

platform\frameworks\support\v4\gradle clean jar 

जो मैं मेरे लिए व्याख्या का उपयोग करने के लिए कहा पीछा कर रहा था है v4 निर्देशिका के लिए एक नेविगेट तो

gradle clean jar 

यहाँ के साथ Gradle फोन * पूरा चरणों मैं बाद में मामला किसी को भी समर्थन पुस्तकालय भी बनाया करना चाहता है।

  1. पहले, इस answer निर्देश का पालन करें:

    • मंच/चौखटे/समर्थन
    • मंच/prebuilts:

आप https://android.googlesource.com से अतिरिक्त खजाने चेकआउट करने की जरूरत है/gradle-plugin

  • मंच/prebuilts/maven_repo/एंड्रॉयड
  • मंच/prebuilts/SDK
  • मंच/prebuilts/उपकरण
  • कृपया, एंड्रॉयड भंडार में के रूप में निर्देशिका संरचना रखने के लिए।

    1. स्थापित संकुल lib32stdc++6 और lib32z1, मैं प्रयोग किया जाता है apt-get

      sudo apt-get install lib32stdc++6

      sudo apt-get install lib32z1

    2. एंड्रॉयड से Android SDK डाउनलोड डेवलपर वेबसाइट here

    3. किसी भी स्थान पर संग्रह को अनपैक फिर tools\

    4. रन ./android तो यह करने के लिए नेविगेट तो एसडीके प्रबंधक lainch इन packafes डाउनलोड करना चाहिए रहे हैं वे पहले से ही

      • एपीआई से सभी Android API डाउनलोड नहीं 4 से एपीआई 22 (आपको अप्रचलित पैकेज दिखाना पड़ सकता है)।
      • उपकरण बिल्ड 19.01 (आप अप्रचलित संकुल को दिखाने के लिए आवश्यकता हो सकती है) और सबसे हाल का निर्माण उपकरण
      • सबसे हाल का प्लेटफार्म उपकरण
      • सबसे हाल एसडीके उपकरण

    आम तौर पर यह करने के लिए पर्याप्त होना चाहिए उन्नयन के साथ समर्थन लाइब्रेरी का निर्माण करें, लेकिन यह पता चला है कि एपीआई 22 के लिए गिट रिपॉजिटरी में जार फ़ाइल वास्तव में अद्यतित नहीं है क्योंकि इसमें एपीआई 22 में जोड़े गए नए एक्सेसिबिलिटीफ़ोइफ़ विधियां नहीं हैं, हां मैंने इसे डिमंपिल्ड किया सुनिश्चित हो। तो कुछ और कदम।

    1. है कि आप से android-sdk-linux/platforms/android-22/

    हम लगभग यहाँ काम हो गया लेकिन दो और मुद्दों के साथ Git भंडार से डाउनलोड platform/prebuilts/sdk/current में andoid.jar फ़ाइल बदलें। यदि आप अब लाइब्रेरी बनाने का प्रयास करते हैं तो Fragment.java में दो संकलन त्रुटियां और FragmentActivity.java में इन्हें ठीक करने में संकोच न करें, हालांकि मुझे यह सुनिश्चित नहीं है कि इनके लिए मेरा फ़िक्स कितना सही था।

    लाइन #935 पर Fragment.java में इन, ठीक करने के लिए मैं एक डाली जोड़ा तो

    result.setFactory(mChildFragmentManager.getLayoutInflaterFactory()); 
    

    लाइन #299 मैं प्रतिस्थापित पर FragmentActivity.java में इस

    result.setFactory((LayoutInflater.Factory)mChildFragmentManager.getLayoutInflaterFactory()); 
    

    बन अन्य फिक्स के लिए,

    final View v = mFragments.onCreateView(name, context, attrs); 
    

    इस

    01 के साथ
    final View v = mFragments.onCreateView(null, name, context, attrs); 
    

    अशक्त जोड़ने के लिए कारण नहीं है क्योंकि पिछले संस्करणों पहले पैरामीटर, जो View parent है मौजूद नहीं था में और में onCrateView विधि माता पिता की घोषणा की और शून्य पर प्रारंभ किया गया था।

    परिणामस्वरूप जार फ़ाइल platform/out/host/gradle/frameworks/support/support-v4/build/libs/ * में पाया जा सकता है * कुछ कदम गायब हो सकते हैं, क्योंकि इस प्रक्रिया ने मुझे काफी समय लगाया है, और मैं कुछ चीजें भूल गया होगा।

    -1
    +0

    "इस कड़ी सवाल का जवाब कर सकते हैं, यह जवाब के आवश्यक हिस्से में शामिल हैं और संदर्भ के लिए लिंक प्रदान करने के लिए बेहतर है केवल-लिंक। यदि लिंक किया गया पृष्ठ बदलता है तो उत्तर अमान्य हो सकते हैं। " गुणवत्ता उत्तर बनाने के लिए stackoverflow [सहायता पृष्ठ] (http://stackoverflow.com/help/how-to-answer) देखें – Olumide

    0

    इस प्रयास करें:

    compile files('libs/your.jar') 
    
    संबंधित मुद्दे