2012-03-25 14 views
10

के माध्यम से एप्लिकेशन पैकेज नाम कैसे बदल सकता हूं क्या कोई एंड्रॉइड टूल है जो कमांड लाइन के माध्यम से प्रोजेक्ट के पैकेज नाम को बदल देगा। मैं ग्रहण के एंड्रॉइड टूल्स का उपयोग नहीं करना चाहता -> एप्लिकेशन पैकेज का नाम बदलें।मैं एंड्रॉइड ऐप के लिए कमांड लाइन

उत्तर

10

यदि आप स्रोत में एक बार परिवर्तन के रूप में ऐसा करना चाहते हैं तो आप एंड्रॉइड कमांड लाइन टूल android update project दस्तावेज़ीकरण [डेवलपर दस्तावेज़] [1] में उपयोग कर सकते हैं।

यदि आप प्रत्येक निर्माण के दौरान गतिशील रूप से ऐसा करना चाहते हैं तो आपको aapt में तर्क पारित करने के लिए कस्टम एंटी बिल्ड स्क्रिप्ट की आवश्यकता होगी दुर्भाग्यवश आप डिफ़ॉल्ट एपैप कार्य का उपयोग नहीं कर सकते क्योंकि यह विकल्प --rename-manifest को सेट करने का समर्थन नहीं करता है -package।

आपको निम्नलिखित लक्ष्य को डिफ़ॉल्ट build.xml फ़ाइल android कमांड लाइन बनाने की आवश्यकता है; यह पहले <import file="${sdk.dir}/tools/ant/build.xml" />

<!-- Replaces the target in tools\ant\build.xml --> 
<target name="-package-resources" depends="-crunch"> 
      <!-- this exec replicates the output of the aapt task in build.xml 
       -package-resources with the addition of a rename-manifest-package option. --> 
      <exec executable="${aapt}" failonerror="true"> 
       <arg value="package" /> 
       <arg value="-f" /> 
       <arg value="--auto-add-overlay" /> 
       <arg value="-M" /> 
       <arg path="${basedir}/AndroidManifest.xml" /> 
       <arg value="-S" /> 
       <arg path="${resource.absolute.dir}" /> 
       <arg value="-S" /> 
       <arg path="${basedir}/${android.library.reference.1}/${resource.dir}" /> 
       <arg value="-A" /> 
       <arg path="${asset.absolute.dir}" /> 
       <arg value="-I" /> 
       <arg path="${android.jar}" /> 
       <arg value="-F" /> 
       <arg path="${out.absolute.dir}/${resource.package.file.name}" /> 
       <arg value="--rename-manifest-package" /> 
       <arg value="${package.manifest.name}" /> 
      </exec> 
</target> 

संपत्ति package.manifest.name इच्छा पैकेज का नाम है में जोड़ें। आप इसे किसी प्रॉपर्टी फ़ाइल में या कमांड लाइन विकल्प -Dpackage.manifest.name=value पर सेट कर सकते हैं, आप इसे संपत्ति के आधार पर आउटपुट एपीके का नाम बदलने के लिए भी बढ़ा सकते हैं।

यह सवाल apk उत्पादन नाम में जोड़ने के लिए प्रकट से संस्करण प्राप्त करने को शामिल किया गया: How to include version string in the filename when building Android apk with ant?

आपको लगता है कि तुम क्या आवश्यकता होगी की एक विचार प्राप्त करने के लिए आयात किया जाता है build.xml फ़ाइल को देखने के लिए चाहते हैं उल्लंघन करने के लिए।

आप स्थानीय build.xml फ़ाइल में नियम ओवरराइड जोड़ना जारी रख सकते हैं, लेकिन अनुकूलन के स्तर के कारण आपको करने की आवश्यकता है, मैं सोचता हूं कि build.xml फ़ाइल को सीधे एंड्रॉइड टूल से कॉपी करें और इसे संशोधित करें इसे आयात के रूप में उपयोग करने से। इसका मतलब यह है कि यह सुनिश्चित करने के लिए और अधिक काम यह सुनिश्चित करता है कि यह अभी भी एंड्रॉइड टूल श्रृंखला में प्रत्येक अपडेट में काम करता है।

+0

आपके उत्तर के लिए धन्यवाद! जैसा कि मैंने @edthethird का जवाब देते समय उल्लेख किया है, मुझे पैकेज का नाम, संस्करण संख्या और संस्करण नाम अपडेट करना होगा। मैं वास्तव में चींटी का उपयोग करना चाहता हूं लेकिन वास्तविक नुकसान पर हूं। कोई अच्छा संसाधन जो आप मुझे लिंक कर सकते हैं? – OrhanC1

+0

चींटी प्रलेखन शुरू करने के लिए एक अच्छी जगह है, बस {sdk.dir} /tools/ant/build.xml में एंड्रॉइड build.xml फ़ाइल को देखकर आपको एक अच्छा विचार देना चाहिए कि यह कितना काम करता है। एपेट लक्ष्य वास्तव में एकमात्र विशेष सॉस है क्योंकि उपकरण के साथ आने वाले डिफ़ॉल्ट एपेट जावा कार्य पर सीमाओं की वजह से। शेष संपत्ति मूल्यों को सही तरीके से सेट करने के बारे में है। – cistearns

+0

कई उत्तरों के आसपास घूमने और प्रयासों के बाद, यह जवाब मेरे लिए काम करता है, lifesaver! – Guykun

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