Android Studio - 没有这样的属性:类的baseName

时间:2014-04-08 15:56:10

标签: android android-studio proguard android-gradle dexguard

我正在尝试将Dexguard添加到Android Studio。我遵循了这些准则,所以我的build.gradle如下:

buildscript {
    repositories {
        mavenCentral()
        flatDir { dirs '/Users/XXXX/Desktop/DexGuard5.3.00/lib' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.4'
        classpath ':dexguard:'
    }
}

apply plugin: 'dexguard'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.3"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        debug {
            proguardFile plugin.getDefaultDexGuardFile('dexguard-debug.pro')
            proguardFile 'dexguard-project.txt'
            proguardFile 'proguard-project.txt'
        }
        release {
            proguardFile plugin.getDefaultDexGuardFile('dexguard-release.pro')
            proguardFile 'dexguard-project.txt'
            proguardFile 'proguard-project.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:support-v4:19.0.1'
    compile 'com.android.support:appcompat-v7:19.0.1'
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

然后我尝试构建项目,我收到以下错误:

  

错误:配置项目':XXXX'时出现问题。   没有这样的属性:class的baseName:com.android.build.gradle.internal.variant.ApplicationVariantData

有没有人再遇到这样的问题?

提前谢谢!

2 个答案:

答案 0 :(得分:1)

DexGuard 5.3.00的Gradle插件与Android插件0.5.1兼容,因此您应该调整文件顶部的类路径。

您可能希望安装最新版本的Gradle插件。在撰写本文时,DexGuard 5.5的Gradle插件与Android插件0.9.0兼容。

作为参考,您始终可以在DexGuard的示例目录中找到包含构建文件的工作示例项目。

答案 1 :(得分:0)

首先,您可以尝试在" project / maven_push.gradle"

中添加nexusUsername=123 nexusPassword=123

然后如果它报告"错误:找不到属性' allJava'在源集主。"

你可以试试这个:

task androidJavadocs(type: Javadoc) {  
    //  comment it if you find
    //source = android.sourceSets.main.allJava  
}  

task androidJavadocsJar(type: Jar) {  
    classifier = 'javadoc'  
    //basename = artifact_id  
    // comment it if you find
    //from android.sourceSets.main.allSource  
}  

task androidSourcesJar(type: Jar) {  
    classifier = 'sources'  
    //basename = artifact_id  
    ////comment it if you find 
    //from android.sourceSets.main.allSource  
}  

最后这不是我的答案,我在一个小博客中发现它~~~感谢authoer,它解决了我的问题〜 祝你好运〜