Android Studio bauen Geschmacksrichtungen - How, um den gleichen Quell-Dateien in verschiedenen Geschmacksrichtungen

Brauche ich zum erstellen einer demo-Geschmack in android studio in einer app. In meinem app-Ebene gradle-Datei die ich erstellt habe, eine weitere Variante namens demo und die Standard-Geschmack voll natürlich. Es sieht wie folgt aus:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.example.uen229.myapplication"
        minSdkVersion 17
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    productFlavors {
        demo {
            applicationId "com.buildsystemexample.app.demo"
            versionName "1.0-demo"
        }
        full {
            applicationId "com.buildsystemexample.app.full"
            versionName "1.0-full"
        }
    }

}

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

und hier ist ein Bild von meinem Projekt-Struktur, in der habe ich eine demo-Aroma-Verzeichnis:

Android Studio bauen Geschmacksrichtungen - How, um den gleichen Quell-Dateien in verschiedenen Geschmacksrichtungen

Nun auf das Problem. Ich habe zwei Klassen genannt Hello.java. Sowohl in der jeweiligen Aromen und drucken verschiedene Dinge. Ich zeige Ihnen, beide Dateien jetzt:

import android.util.Log;

/** this is from demo flavor directory**/

public class Hello {

    Hello(){

        Log.v("","hello from demo");
    }

    public String getName();
        return "im from demo";

    };

}

Und hier ist die andere Hallo:

package com.example.uen229.myapplication;

import android.util.Log;


/** this is from full or main flavor directory**/
public class Hello {


    Hello(){

        Log.v("", "hello from main");
    }

    public String getName(){

        return "im from main";

    };
}

beachten Sie, wie die ersten hello.java nicht Paket, selbst wenn ich ein Paket von der IDE nicht kompilieren. betrachten Sie dieses Foto:

Android Studio bauen Geschmacksrichtungen - How, um den gleichen Quell-Dateien in verschiedenen Geschmacksrichtungen

Nun endlich betrachten können mainActivity.java zu sehen, dass, wenn ich switch-build-Varianten es macht nur einen toast für "im vom main", aber ich brauche es zum Druck "im vom demo", wenn ich die demoDebug build-Variante. Wenn ich schalten Sie die build-Variante zu demoDebug es noch gibt "im vom main". kann mir jemand helfen :

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Hello h = new Hello();
        Toast.makeText(this, h.getName(), Toast.LENGTH_LONG).show();

    }
}

UPDATE

Vom stackoverflow es sagt:

Wenn Sie möchten, eine andere version der gleichen Klasse in den beiden
Geschmack, den Sie brauchen, um es zu schaffen in den beiden Geschmacksrichtungen.

src/flavor1/java/com/foo/A.java

src/flavor2/java/com/foo/A.java

Und dann Ihren code in src/main/java tun können:

import com.foo.A

je nach Geschmack ausgewählt, die richtige version von com.foo.A ist
verwendet.

Dies ist, was ich erreichen wollen mit der Klasse Hello

InformationsquelleAutor j2emanue | 2015-06-24
Schreibe einen Kommentar