2015-04-07 11 views
5

Yüksek: BuradaAndroid yapı içinde aar dosyayı yeniden adlandırmak için başarısız i yukarıdaki hatayı buil ve gradle kullanarak aar dosyayı yeniden adlandırmak ancak almaya çalışıyorum

A problem occurred evaluating project ':app'. 
> Could not find property 'outputs' on BuildType_Decorated{name=variant, debuggable=false, testCoverageEnabled=false, jniDebuggable=false, pseudoLocalesEnabled=false, renderscriptDebuggable=false, renderscriptOptimLevel=3, applicationIdSuffix=null, versionNameSuffix=null, minifyEnabled=false, zipAlignEnabled=true, signingConfig=null, embedMicroApp=true, mBuildConfigFields={}, mResValues={}, mProguardFiles=[], mConsumerProguardFiles=[], mManifestPlaceholders={}}. 

gradle benim tam yapı script

apply plugin: 'com.android.library' 

android.libraryVariants.all { variant -> 
    def alignedOutputFile = output.outputFile 
    def unalignedOutputFile = output.packageApplication.outputFile 

    logger.warn('You got to variant: ' + variant + ' and output: ' + output) 
    // Customise APK filenames (to include build version) 
    if (variant.buildType.zipAlignEnabled) { 
     // normal APK 
     output.outputFile = new File(alignedOutputFile.parent, alignedOutputFile.name.replace(".aar", "-" + defaultConfig.versionName + "-" + defaultConfig.versionCode + ".aar")) 
    } 
    // 'unaligned' APK 
    output.packageApplication.outputFile = new File(unalignedOutputFile.parent, unalignedOutputFile.name.replace(".aar", "-" + defaultConfig.versionName + "-" + defaultConfig.versionCode + ".aar")) 

} 

    android { 
     compileSdkVersion 21 
     buildToolsVersion '21.1.2' 

     repositories { 
      flatDir { 
       dirs 'libs' 
      } 
     } 



     defaultConfig { 
      minSdkVersion 14 
      targetSdkVersion 21 
      versionCode 1 
      versionName "1.0" 
     } 
     buildTypes { 

      release { 
       minifyEnabled false 
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      } 
     } 
    } 

    /* 
     Both Joda-Time imports have these 2 files and they conflict with each other. 'exclude' is 
     the workaround. 
    */ 
    android.packagingOptions { 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/NOTICE.txt' 
    } 

    dependencies { 
     compile fileTree(dir: 'libs', include: ['*.jar']) 
     compile 'com.android.support:appcompat-v7:21.0.3' 
     compile(name: 'etsdk-3.5.0', ext: 'aar') 
     // 3rd Party Libraries Required for SDK integration 
     compile 'com.fasterxml.jackson.core:jackson-annotations:2.4.4' 
     compile 'com.fasterxml.jackson.core:jackson-databind:2.0.6' 
     compile 'org.joda:joda-convert:1.7' 
     compile 'joda-time:joda-time:2.6' 
     compile 'com.j256.ormlite:ormlite-android:4.48' 
     compile 'com.j256.ormlite:ormlite-core:4.48' 
     compile 'com.belladati:httpclientandroidlib:4.3.0' 
     compile 'com.radiusnetworks:AndroidIBeaconLibrary:0.7.6' 
     compile 'com.google.android.gms:play-services:4.0.30' 
    } 

    // Top-level build file where you can add configuration options common to all sub-projects/modules. 

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

      // NOTE: Do not place your application dependencies here; they belong 
      // in the individual module build.gradle files 
     } 
    } 

    allprojects { 
     repositories { 
      jcenter() 
     } 
    } 

cevap

3

Varyant kodunuzu yanlış yere sahip olabilirsiniz. Aşağıdaki çalıştı ve benim için çalıştı:

android.applicationVariants.all { variant -> 
    variant.outputs.each{ output -> 
     logger.warn('You got to variant: ' + variant + ' and output: ' + output) 
    } 
} 

Ben buildTypes veya başka bir şey altında build.gradle bir üst düzeyde koymak ve bu görebilirsiniz:

You got to variant: com.and[email protected]3ab912fb and output: com.a[email protected]6441365a

You got to variant: com.and[email protected]dc7d23 and output: com.a[email protected]b9b8546

bu yüzden çıktı değişkenini bulur ve üzerinde yineler.

Düzenleme: http://tools.android.com/tech-docs/new-build-system/user-guide

siteden:

In Android projects, this is a bit more complicated because there could be a large number of the same task and their name is generated based on the Build Types and Product Flavors.

In order to fix this, the android object has two properties:

applicationVariants (only for the app plugin) 
libraryVariants (only for the library plugin) 
testVariants (for both plugins) 
+0

havalı bana şunu vereyim – jonney

+0

Hala çalışmıyor. Bu hatayı aldım: > Com[email protected]f10d055 adresinde 'output' özelliği bulunamadı. , – jonney

+0

üzerindeki güncellememi güncelleyecektir Çıkış değişkenini tanımlamayı kaçırdınız, cevabımdaki ikinci satırı yapmayı unutmayın: "variant.outputs.each {output ->" –

4

Burada ilk referans output:
def alignedOutputFile = output.outputFile

Eğer resmi kaynaklar istediğim için, burada 'kurgulama Görevler' bölümüne gidin

Ancak, bildirmediniz, bu nedenle Gradle Could not find property 'output'. örneğin bunu hak tamamen

android.libraryVariants.all { variant -> 
    variant.outputs.each { output -> 
     output.outputFile = ...   
    } 
} 

ya:

Ya output s döngü senin variantthis post gibi mensup gerek
def alignedOutPutFile = variant.outputs[0].outputFile

+0

cevabını da doğru olanı olarak işaretleyebilirdim ama konuyla ilgili daha fazla bilgi sahibi olmam için Daniels'ı işaretledim. Yine de teşekkürler – jonney

İlgili konular