2015-09-08 6 views
7

में पैकेज नाम के रूप में एपीके नाम जेनरेट करें एंड्रॉइड स्टूडियो ऐप- (रिलीज | डीबग) .apk के रूप में डिफ़ॉल्ट एपीके नाम उत्पन्न करेगा।
एपीके फ़ाइल नाम को एप के पैकेज नाम के समान कैसे बनाएं com.example-debug.apkAndroid स्टूडियो

+2

इस लिंक http://stackoverflow.com/questions/22126299/change-apk-name-with-gradle/22126638#22126638 मदद मिल सकती है –

+0

ऊपर के लिंक अद्यतन अपने काम करने के लिए उपयोगी –

उत्तर

4

अपने मॉड्यूल के build.gradle में इस डाल कोशिश

applicationVariants.all { variant -> 
    variant.outputs.each { output -> 
     def file = output.outputFile 
     def appId = android.defaultConfig.applicationId 
     def fileName = appId + "-" variant.buildType.name +".apk" 
     output.outputFile = new File(file.parent, fileName) 
    } 
} 
+0

धन्यवाद है। – Bangaram

+0

यह केवल मेरे लिए एक एपीके थूकता है और प्रत्येक बिल्ड संस्करण के लिए एपीके थूकता नहीं है। – Subby

+0

बेशक नहीं, अगर आप किसी अन्य संस्करण के लिए एपीके चाहते हैं, तो आपको पहले बिल्ड संस्करण बदलना होगा। या सभी संस्करणों को बनाने के लिए एक कमांड का उपयोग करें। यह कोड केवल एपीके का नाम बदलता है, और कुछ भी नहीं। टर्मिनल में './gradlew इकट्ठा' का उपयोग करके – slezadav

1

आप इस link देख सकते हैं। या फ़ाइल ब्राउज़र में जो भी आप चाहते हैं उसके नाम के साथ अपने release|debug.apk का नाम बदलने के लिए अनौपचारिक विकल्प।

इस कोड को आप के लिए उपयोगी हो सकता है:

buildTypes { 
release { 
    minifyEnabled false 
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    applicationVariants.all { variant -> 
     variant.outputs.each { output -> 
      def formattedDate = new Date().format('yyyyMMddHHmmss') 
      def newName = output.outputFile.name 
      newName = newName.replace("app-", "$rootProject.ext.appName-") //"MyAppName" -> I set my app variables in the root project 
      newName = newName.replace("-release", "-release" + formattedDate) 
      //noinspection GroovyAssignabilityCheck 
      output.outputFile = new File(output.outputFile.parent, newName) 
     } 
    } 
} 
    debug { 
    } 
} 

अपने कोड :) का आनंद

0

यह इस कोड project.Put के शीर्ष स्तर निर्देशिका में customname.gradle नाम की एक फ़ाइल बनाएँ।

android.applicationVariants.all { variant ->; 
def appName 
//Check if an applicationName property is supplied; if not use the name of the parent project. 
if (project.hasProperty("applicationName")) { 
    appName = applicationName 
} else { 
    appName = parent.name 
} 

variant.outputs.each { output ->; 
    def newApkName 
    //If there's no ZipAlign task it means that our artifact will be unaligned and we need to mark it as such. 
    if (output.zipAlign) { 
     newApkName = "${appName}-${output.baseName}-${variant.versionName}.apk" 
    } else { 
     newApkName = "${appName}-${output.baseName}-${variant.versionName}-unaligned.apk" 
    } 
    output.outputFile = new File(output.outputFile.parent, newApkName) 
}} 

फिर अपने एप्लिकेशन मॉड्यूल के Gradle में एक और कार्यों का उपयोग कर, archivesBaseName की स्थापना के बिना इस कोड

apply from: "../customname.gradle" 
15

आप यह कर सकते जोड़ें।

उदाहरण के लिए:

defaultConfig { 
     .... 
     project.ext.set("archivesBaseName", "MyName-" + defaultConfig.versionName); 

    } 

आउटपुट:

MyName-1.0.12-release.apk 

आपके मामले में:

project.ext.set("archivesBaseName", "com.example"); 
+0

आप रूटप्रोजेक्ट नाम तक पहुंचने में सक्षम हो सकते हैं और इसे इस तरह उपयोग कर सकते हैं: 'project.ext.set (" archivesBaseName ", rootProject.getName() + "-" + defaultConfig.versionName); –

+0

दुर्भाग्य से जब आप अभिलेखागार के रूप में संस्करणों के साथ काम करते हैं तो स्केल नहीं होता हैबेसबेस उन सभी के लिए वैश्विक है – Ewoks

0

यह आपको मदद मिल सकती है। यह कोड applicationId-release.apk या applicationId-debug.apk जैसे ऐप नाम बनाएगा जिसमें एप्लिकेशन आपका पैकेज नाम हो सकता है।

buildTypes { 

    applicationVariants.all { variant -> 
     variant.outputs.each { output -> 
      def newName = output.outputFile.name 
      newName = newName.replace("app-", applicationId) 
      output.outputFile = new File(output.outputFile.parent, newName) 
     } 
    } 
}