[LibGDX] Memory leak?

I have an intro video that plays fine on desktop. But when I try to play it on my Samsung android tablet, it plays at about .05 frames per second. Painfully slow…
When I look at LogCat, it is coming up with alot of Garbage Collector sweeps and from what I’m reading online, it is because my Heap is filling up (probably because of a memory leak).
This is the code for my intro video, is there an obvious memory issue there? Am I not disposing of assets properly?

package core;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.assets.AssetManager;
import com.badlogic.gdx.assets.loaders.TextureLoader.TextureParameter;
import com.badlogic.gdx.audio.Music;
import com.badlogic.gdx.graphics.Texture;

public class Intro implements Renderable {
	
	private boolean isFinished = false;
	private AssetManager textureManager;
	private Music music;
	private int currentFrame = 1, lastRenderedFrame = 1;
	
	public void load() {
		textureManager = new AssetManager();
	}
	
	public void play() {
		Game.activeGame.toBeRendered.add(this);
		music = Gdx.audio.newMusic(Gdx.files.internal("assets/intro/audio/jingle.mp3"));
		music.setVolume(.1f);
		music.setLooping(false);
		music.play();
	}
	
	public void dispose() {
		Game.activeGame.toBeRendered.remove(this);
		textureManager.dispose();
		isFinished = true;
		Game.activeGame.createMenu();
	}
	
	public boolean isFinished() {
		return isFinished;
	}
	
	@Override
	public void render() {
		if (Gdx.files.internal("assets/intro/Frame ("+currentFrame+").jpg").exists()) {
			if (Gdx.files.internal("assets/intro/Frame ("+(currentFrame-1)+").jpg").exists())
				textureManager.unload("assets/intro/Frame ("+(currentFrame-1)+").jpg");
			textureManager.load("assets/intro/Frame ("+currentFrame+").jpg", Texture.class);
		}
		textureManager.finishLoading();
		try {
			Game.activeGame.batch.draw((Texture) textureManager.get("assets/intro/Frame ("+currentFrame+").jpg"), 0, 0, Game.screenSize.x, Game.screenSize.y);
			lastRenderedFrame = currentFrame;
		} catch (NullPointerException e) {
			Game.activeGame.batch.draw((Texture) textureManager.get("assets/intro/Frame ("+lastRenderedFrame+").jpg"), 0, 0, Game.screenSize.x, Game.screenSize.y);
		}
		
		if (currentFrame >= 150)
			dispose();
		else
			currentFrame ++;
	}
	
}

Have you tried loading a texture every frame? :slight_smile: Also there is little point in using AssetManager, which loads in a separate thread, and then blocking the render thread to wait for it to load.