相关疑难解决方法(0)

如何为不同的产品风格定义不同的依赖关系

我正在将我的一个应用程序转换为Gradle,并希望使用新的构建风格功能来获得付费和免费的广告风格.

我只希望基于广告的版本依赖于admob SDK.

我的构建文件如下所示:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 18
    }

    productFlavors {
        Pro {
            packageName "de.janusz.journeyman.zinsrechner.pro"
        }
        Free { 
            dependencies {

            }
        }
    }
}

dependencies {
    compile 'com.android.support:support-v4:18.0.+'
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
    compile fileTree(dir: 'libs', include: '*.jar')
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在免费产品风格中配置依赖项,使其拥有自己的libs文件夹,该文件夹与包含两种风格的通用库的主libs文件夹合并?

如果可能,我该如何定义此文件夹?

android gradle android-build

138
推荐指数
6
解决办法
4万
查看次数

什么是胖JAR?

我听说有人说他们创建了一个胖JAR并进行部署.他们究竟是什么意思?

java jar uberjar

121
推荐指数
4
解决办法
6万
查看次数

Gradle:为库的特定风格添加依赖项

我有一个图书馆项目和一个应用程序.我想为图书馆和应用程序提供2种产品口味(商店,开发).当我为应用程序构建商店风味时,我想使用库中的商店风味.此外,当我为应用程序构建dev风格时,我想使用库中的dev风格.我尝试为库和应用程序设置相同的产品风格,但它不起作用.

这是我的配置:

图书馆

apply plugin: 'android-library'

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    defaultConfig {
        applicationId "ro.amarkovits.graddletest.lib"
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors{
        store{

        }
        dev{

        }
    }

}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}
Run Code Online (Sandbox Code Playgroud)

我有这些文件:src/main/res/values/strings.xml和src/store/res/values/strings.xml

应用

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion '19.1.0'
    defaultConfig {
        applicationId 'ro.amarkovits.mymodule.app'
        minSdkVersion 14 …
Run Code Online (Sandbox Code Playgroud)

android gradle library-project android-productflavors

41
推荐指数
2
解决办法
2万
查看次数

使用gradle为不同的应用程序风格使用不同的资源


我有一个Android应用程序,我想有不同的口味.具体来说,我想有2种口味,每种口味使用不同的字符串(不同的strings.xml文件),也许有一些不同的图标.

我曾尝试创建项目的根文件夹两个文件夹:flav1flav2并用以下build.gradle

android {
    compileSdkVersion "Google Inc.:Google APIs:15"
    buildToolsVersion "17.0.0"

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        instrumentTest.setRoot('tests')
    }

    productFlavors {
        flav1 {
            packageName "com.ic.flav1"
        }

        flav2 {
            packageName "com.ic.flav2"
        }
    }

    android.sourceSets.flav2 {
        res {
            srcDir 'flav2'
        }
        resources {
            srcDir 'flav2'
        }
    }
    android.sourceSets.flav1 {
        res {
            srcDir 'flav1'
        }
        resources {
            srcDir …
Run Code Online (Sandbox Code Playgroud)

android build gradle android-resources

15
推荐指数
1
解决办法
7071
查看次数