2014-12-22 17 views
9

Durante la migrazione da Android Studio 0,9-1,0, ho dovuto cambiare la clausolaStudio Android 1.0 'runProguard' vs 'minifyEnabled'

buildTypes { 
    release { 
-  runProguard true 
+  minifyEnabled true 
} 

come raccomandato here.

La mia applicazione è in esecuzione un adattatore standard di sincronizzazione

public class SyncAdptr extends AbstractThreadedSyncAdapter { 
    private static Context mCtx; 

    public SyncAdptr(Context ctx, boolean autoInit) { 
    super(ctx, autoInit); mCtx = ctx; 
    } 

    static void syncStart(Account gooAcct, String authority) { 
    ... 
    ContentResolver.setSyncAutomatically(gooAcct, authority, true); 
    ... 
    } 
    ... 
} 

come servizio:

public class SyncService extends Service { 
    private static final Object sSyncAdapterLock = new Object(); 
    private static SyncAdptr sAndyScanSyncAdapter = null; 

    @Override 
    public void onCreate() { 
    synchronized (sSyncAdapterLock) { 
     if (sAndyScanSyncAdapter == null) { 
     sAndyScanSyncAdapter = new SyncAdptr(getApplicationContext(), true); 
     } 
    } 
    } 
    @Override 
    public IBinder onBind(Intent intent) { 
    return sAndyScanSyncAdapter.getSyncAdapterBinder(); 
    } 
} 

Si tratta di un codice standard piuttosto standard che da sempre ha funzionato.

Aggiungendo la clausola 'minifyEnabled' come indicato sopra, la sincronizzazione ha smesso di funzionare senza alcuna indicazione di errore. L'ho provato rimuovendo la clausola; la dimensione dell'APK è rimasta all'incirca uguale alla mia versione di debug e la sincronizzazione funzionava. Non appena ho inserito "minifyEnabled", l'APK si è notevolmente ridotto (come previsto), ma l'adattatore di sincronizzazione si è interrotto nuovamente.

Qualche opinione? Suggerimenti?

UPDATE (3 mesi più tardi):

ho progredito a 'Android 1.1.0 Studio AI-135,1,74077 milioni 2015/02/18', ma ancora nessuna differenza. Il 'minifyEnabled = true' ha un effetto che il servizio non inizia mai. Qualcuno sa dove trovare 'Dump di configurazione ProgGuard' come suggerito nei commenti?

+0

Qualsiasi StackTrace o un dump di configurazione ProgGuard? – shkschneider

+0

qual è la tua versione gradle? – NickF

+0

Vedo 'Android Studio 1.0.2, build 135.1653844, non so cosa ci sia in Gradle ver. – seanpj

risposta

0

Si consiglia di provare questa pagina per la funzionalità di riduzione delle risorse che rimuove le risorse non utilizzate nell'app pacchettizzata, al momento della compilazione.

http://tools.android.com/tech-docs/new-build-system/resource-shrinking

+5

Sarebbe utile includere un riepilogo di ciò che questo documento dice, poiché i collegamenti si interrompono spesso, lasciando la risposta non più utile. –

Problemi correlati