簡體   English   中英

Android,Gradle產品風味; 包不存在

[英]Android, Gradle Product Flavour; package does not exist

我在這個問題上搜索得很高,但仍然找不到任何東西。

我開始使用新的構建系統構建和應用程序。 我在這個項目中使用兩種產品口味,免費和專業。 gradle.build文件如下:

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

    repositories {
        mavenCentral()
    }

    android {
        compileSdkVersion 17
        buildToolsVersion "17.0.0"

        defaultConfig {
            minSdkVersion 7
            targetSdkVersion 17
        }

        productFlavors {
            free {
                packageName "com.example.free"
                buildConfig "public static final Boolean versionPro = true;"
            }

            pro {
                packageName "com.example.pro"
                buildConfig "public static final Boolean versionPro = false;"
            }
        }
    }

    dependencies {
        compile 'com.android.support:support-v4:13.0.+'
    }

我已經像這樣構建了src文件結構,工作正常:

-main -java -memphic -dodger -game -java文件

-free -java -memphic -dodger -free -java文件

-pro -java -memphic -dodger -pro -java文件

我想知道如何從主要活動的flavor源文件中引用一個類。 我在主java文件中使用了以下代碼來嘗試引用免費的包類文件。

com.example.free.ClassFile.addObject();

這在構建免費版本時有效,因為它可以找到包; 但是在構建專業版時,它無法找到包參考。

有沒有辦法可以在類文件中引用動態的另一個包? 因此,在編譯專業版和免費版時,可以動態地找到包。 我想不出辦法做到這一點。

也有人知道如何使用新的構建概念作為這樣的概念的優秀實際例子不包括在Gradle構建之外嗎?

正如tbruyelle所提到的那樣回答我的問題,就是在整個構建文件中保留相同的包名稱,以便它們在構建期間不會發生沖突。

然后通過Grade.build文件更改構建包名稱。 這將使每種風味在設備上部署時保持唯一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM