9

Sto provando ad avere un pezzo di codice per rilevare un BuildType, ma sono un po 'bloccato. Ogni volta che si digita il codice per l'istruzione IF, viene indicatoStudio Android: verificare la presenza di un tipo di build personalizzato

Tipi incompatibili. Obbligatorio: booleano. Trovato: java.lang.String

Quando avrei pensato che avrebbe dovuto essere una stringa se c'era .toString() alla fine.

Il mio codice per rilevare che è:

String buildtype = BuildConfig.BUILD_TYPE.toString(); 
if (buildtype = "admin") { 
    //Do some admin stuff here. 
} 

Ho installato il buildtype admin in mio file build.gradle in questo modo:

admin { 
     debuggable true 
     jniDebuggable false 
     renderscriptDebuggable false 
     minifyEnabled false 
     zipAlignEnabled true 
    } 

Qualsiasi aiuto è molto apprezzato. Grazie

+1

'=' è l'operatore _assignment_, questo è perché ti sta dicendo che hai bisogno di un booleano e non di una stringa, perché stai assegnando 'buildtype' a' "admin" ', e non controllando se' buildtype' _equals_ '" admin "'. Per verificare l'uguaglianza (di riferimento), utilizzare '=='. E, non dovresti usare '== 'per confrontare le stringhe, però. Usa 'someString.equals (...)' per quello. – JonasCz

risposta

6

Puoi guardare il tuo file BuildConfig. È il file che otterrai dopo aver creato una build.

Per la tua domanda. Penso che dovresti usare BuildConfig.FLAVOR invece di BuildConfig.BUILD_TYPE. E ricorda che il loro tipo è String, quindi non è necessario convertire in String con .toString()

Infine, si dovrebbe usare il metodo di confronto delle stringhe. Quindi, il codice dovrebbe essere

if (BuildConfig.FLAVOR.contentEquals("admin")) { 
    //Do some admin stuff here. 
} 
+0

Grazie mille. Questo ha risposto alla mia domanda. – Cowboy433

+0

Domanda veloce, rileverebbe productFlavors o BuildTypes. Grazie – Cowboy433

+0

Dipende. Guarda il tuo file 'build.gradle'. Se 'admin' è in' buildTypes', verrà selezionato come BuildTypes Se 'admin' è in' productFlavors', verrà selezionato come Flavors. –

6

Che cosa si può utilizzare nel caso in cui si vuole andare a fare un tipo di generazione personalizzata e non un sapore prodotto è:

if (BuildConfig.BUILD_TYPE.contentEquals("admin")) { 
    // Do things related to the admin build type. 
}