OutOfMemoryError

cancel
Showing results for 
Search instead for 
Did you mean: 
piter
Member II

OutOfMemoryError

Salve,

in passato mi avete aiutato a risolvere dei problemi sulla share di alfresco, oggi voglio invece chiedervi dei suggerimenti su come risolvere un problema di OutOfMemoryError relativo all'invio di video di dimensioni superiori a 500Mb; l'invio dei video lo eseguo attraverso un'app Android che tramite un task asincrono si connette al repository:

-repoSession = RepositorySession.connect(url, username, password);

dopo aver ottenuto la sessione di alfresco eseguo una chiamata al repository:
DocumentFolderService mDocumentFolderService = repoSession.getServiceRegistry().getDocumentFolderService();
e sul riferimento

mDocumentFolderService.createDocument(folder, mFile.getName(), mProperties, mContentFile);
ora quest'ultima chiamata mi genera l'errore
E/System: java.lang.OutOfMemoryError: Failed to allocate a 36 byte allocation with 0 free bytes and 0B until OOM

Ho fatto diverse ricerche e ho aggiunto nel file gradle l'istruzione
dexOptions {
    incremental = true;
    javaMaxHeapSize "4g"
}

nel manifest

android:largeHeap="true"
android:allowBackup="true"
android:hardwareAccelerated="false"
android:supportsRtl="true"
e infine nel gradle.properties

org.gradle.jvmargs=-Xmx2048m

non sono riuscito a risolvere il problema, forse dovrei intervenire sul progetto alfresco ma non so;

grazie in anticipo per eventuali suggerimenti

Pietro
1 Reply
openpj
Moderator
Moderator

Re: OutOfMemoryError

Forse il metodo che usi per creare il contenuto non fa streaming del binario o comunque fa qualcosa in più poiché il client effettua operazioni atomiche.

Suggerirei di creare prima il contenuto vuoto e poi di provare ad effettuare l'upload del binario utilizzando il metodo updateContent:

updateContent | Alfresco Documentation 

Altrimenti devi andare ad utilizzare direttamente l'API REST con una chiamata PUT direttamente dalla tua applicazione.

Spero ti aiuti a risolvere.