Aplikacja na libGDX

0

Hej

Zaczynam z biblioteką libGdx. Wyeksportowałem pierwszy projekt do Eclipsa, odpaliłem demo na androida i desktop - działa. Teraz chciałem odpalić jakiś obrazek ale już własny. W kodzie żadnych cudów nie ma a mimo to nie chce się uruchomić.
Pojawia się taka informacja na wirtualnej maszynie androida

The application My LibGDX Game (process pl.wp.nazwaPoczty.NAZWA) has stopped unexpectedly. Please try again.

W kodzie nie pojawia się żadna informacja obłędzie. O co może chodzić?
(LogCat wyrzuca sporo informacji których na tym etapie jeszcze nie rozumiem)

dodanie znacznika <quote> dla treści informacji - fp

EDIT: Kod:

package pl.wp.xxx.xxx;

import android.os.Bundle;

import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;

public class MainActivity extends AndroidApplication {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
        cfg.useGL20 = true;
        cfg.useAccelerometer = false;
        cfg.useCompass = false;
        initialize(new xxx(), cfg);
    }
}
 
package pl.wp.xxx.xxx;

import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class xxx implements ApplicationListener {
	Texture obrazek;
	OrthographicCamera camera;
	SpriteBatch batch;
	
	public static final String VERSION ="0.0.0.01 Pre-Alpha";

	@Override
	public void create() {
		obrazek = new Texture(Gdx.files.internal("statek.png"));
		camera = new OrthographicCamera();
		camera.setToOrtho(false, 800, 480);

		batch = new SpriteBatch();
	}

	@Override
	public void dispose() {
	}

	@Override
	public void render() {
		Gdx.gl.glClearColor(0, 0, 0, 1);
		Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
		camera.update();
		batch.setProjectionMatrix(camera.combined);
		batch.begin();
			    
		batch.draw(obrazek, 250, 200);
			    
		batch.end();
	}

	@Override
	public void resize(int width, int height) {
	}

	@Override
	public void pause() {
	}

	@Override
	public void resume() {
	}
}
 
0

To właśnie logcat służy do odczytywania rodzaju błędu. Mało tego, jest podany nawet numer linii, w której wystąpił błąd. Bez wklejenia logu z logcata nikt Ci z fusów nie wywróży.

0

A jest jakiś sposób na skopiowanie całego (lub części) LogCat?

EDIT: Już mam (to są wszystkie errory):

07-08 1250.286: E/AndroidRuntime(322): FATAL EXCEPTION: GLThread
07-08 1250.286: E/AndroidRuntime(322): com.badlogic.gdx.utils.GdxRuntimeException: Texture width and height must be powers of two: 400x600
07-08 1250.286: E/AndroidRuntime(322): at com.badlogic.gdx.graphics.Texture.uploadImageData(Texture.java:204)
07-08 1250.286: E/AndroidRuntime(322): at com.badlogic.gdx.graphics.Texture.load(Texture.java:179)
07-08 1250.286: E/AndroidRuntime(322): at com.badlogic.gdx.graphics.Texture.create(Texture.java:159)
07-08 1250.286: E/AndroidRuntime(322): at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:133)
07-08 1250.286: E/AndroidRuntime(322): at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:122)
07-08 1250.286: E/AndroidRuntime(322): at pl.wp.xxx.xxx.xxx.create(xxx.java:19)
07-08 1250.286: E/AndroidRuntime(322): at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:292)
07-08 1250.286: E/AndroidRuntime(322): at com.badlogic.gdx.backends.android.surfaceview.GLSurfaceViewCupcake$GLThread.guardedRun(GLSurfaceViewCupcake.java:708)
07-08 1250.286: E/AndroidRuntime(322): at com.badlogic.gdx.backends.android.surfaceview.GLSurfaceViewCupcake$GLThread.run(GLSurfaceViewCupcake.java:646)
07-08 1223.365: E/AndroidRuntime(337): FATAL EXCEPTION: GLThread
07-08 1223.365: E/AndroidRuntime(337): com.badlogic.gdx.utils.GdxRuntimeException: Texture width and height must be powers of two: 400x600
07-08 1223.365: E/AndroidRuntime(337): at com.badlogic.gdx.graphics.Texture.uploadImageData(Texture.java:204)
07-08 1223.365: E/AndroidRuntime(337): at com.badlogic.gdx.graphics.Texture.load(Texture.java:179)
07-08 1223.365: E/AndroidRuntime(337): at com.badlogic.gdx.graphics.Texture.create(Texture.java:159)
07-08 1223.365: E/AndroidRuntime(337): at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:133)
07-08 1223.365: E/AndroidRuntime(337): at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:122)
07-08 1223.365: E/AndroidRuntime(337): at pl.wp.xxx.xxx.xxx.create(xxx.java:19)
07-08 1223.365: E/AndroidRuntime(337): at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:292)
07-08 1223.365: E/AndroidRuntime(337): at com.badlogic.gdx.backends.android.surfaceview.GLSurfaceViewCupcake$GLThread.guardedRun(GLSurfaceViewCupcake.java:708)
07-08 1223.365: E/AndroidRuntime(337): at com.badlogic.gdx.backends.android.surfaceview.GLSurfaceViewCupcake$GLThread.run(GLSurfaceViewCupcake.java:646)
07-08 1239.715: E/AndroidRuntime(349): FATAL EXCEPTION: GLThread
07-08 1239.715: E/AndroidRuntime(349): com.badlogic.gdx.utils.GdxRuntimeException: Texture width and height must be powers of two: 400x600
07-08 1239.715: E/AndroidRuntime(349): at com.badlogic.gdx.graphics.Texture.uploadImageData(Texture.java:204)
07-08 1239.715: E/AndroidRuntime(349): at com.badlogic.gdx.graphics.Texture.load(Texture.java:179)
07-08 1239.715: E/AndroidRuntime(349): at com.badlogic.gdx.graphics.Texture.create(Texture.java:159)
07-08 1239.715: E/AndroidRuntime(349): at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:133)
07-08 1239.715: E/AndroidRuntime(349): at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:122)
07-08 1239.715: E/AndroidRuntime(349): at pl.wp.xxx.xxx.xxx.create(xxx.java:19)
07-08 1239.715: E/AndroidRuntime(349): at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:292)
07-08 1239.715: E/AndroidRuntime(349): at com.badlogic.gdx.backends.android.surfaceview.GLSurfaceViewCupcake$GLThread.guardedRun(GLSurfaceViewCupcake.java:708)
07-08 1239.715: E/AndroidRuntime(349): at com.badlogic.gdx.backends.android.surfaceview.GLSurfaceViewCupcake$GLThread.run(GLSurfaceViewCupcake.java:646)

1

Błąd jest w drugiej linijce. Wynika z niego, że długość i szerokość wczytywanej tekstury mogą być tylko potęgami liczby 2. Zakładam więc, że wczytywaną teksturą jest ten obrazek i musisz go albo ręcznie, albo programistycznie przeskalować.

0

A teraz takie:

07-08 1341.898: E/AndroidRuntime(332): FATAL EXCEPTION: GLThread
07-08 1341.898: E/AndroidRuntime(332): com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: ss.png
07-08 1341.898: E/AndroidRuntime(332): at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:140)
07-08 1341.898: E/AndroidRuntime(332): at com.badlogic.gdx.graphics.glutils.FileTextureData.prepare(FileTextureData.java:64)
07-08 1341.898: E/AndroidRuntime(332): at com.badlogic.gdx.graphics.Texture.load(Texture.java:175)
07-08 1341.898: E/AndroidRuntime(332): at com.badlogic.gdx.graphics.Texture.create(Texture.java:159)
07-08 1341.898: E/AndroidRuntime(332): at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:133)
07-08 1341.898: E/AndroidRuntime(332): at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:122)
07-08 1341.898: E/AndroidRuntime(332): at pl.wp.xxx.xxx.xxx.create(xxx.java:19)
07-08 1341.898: E/AndroidRuntime(332): at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:292)
07-08 1341.898: E/AndroidRuntime(332): at com.badlogic.gdx.backends.android.surfaceview.GLSurfaceViewCupcake$GLThread.guardedRun(GLSurfaceViewCupcake.java:708)
07-08 1341.898: E/AndroidRuntime(332): at com.badlogic.gdx.backends.android.surfaceview.GLSurfaceViewCupcake$GLThread.run(GLSurfaceViewCupcake.java:646)
07-08 1341.898: E/AndroidRuntime(332): Caused by: java.io.IOException: couldn't load pixmap 8bit only
07-08 1341.898: E/AndroidRuntime(332): at com.badlogic.gdx.graphics.g2d.Gdx2DPixmap.<init>(Gdx2DPixmap.java:57)
07-08 1341.898: E/AndroidRuntime(332): at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:138)
07-08 1341.898: E/AndroidRuntime(332): ... 9 more
07-08 1408.948: E/AndroidRuntime(348): FATAL EXCEPTION: GLThread
07-08 1408.948: E/AndroidRuntime(348): com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: ss.png
07-08 1408.948: E/AndroidRuntime(348): at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:140)
07-08 1408.948: E/AndroidRuntime(348): at com.badlogic.gdx.graphics.glutils.FileTextureData.prepare(FileTextureData.java:64)
07-08 1408.948: E/AndroidRuntime(348): at com.badlogic.gdx.graphics.Texture.load(Texture.java:175)
07-08 1408.948: E/AndroidRuntime(348): at com.badlogic.gdx.graphics.Texture.create(Texture.java:159)
07-08 1408.948: E/AndroidRuntime(348): at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:133)
07-08 1408.948: E/AndroidRuntime(348): at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:122)
07-08 1408.948: E/AndroidRuntime(348): at pl.wp.xxx.xxx.xxx.create(xxx.java:19)
07-08 1408.948: E/AndroidRuntime(348): at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:292)
07-08 1408.948: E/AndroidRuntime(348): at com.badlogic.gdx.backends.android.surfaceview.GLSurfaceViewCupcake$GLThread.guardedRun(GLSurfaceViewCupcake.java:708)
07-08 1408.948: E/AndroidRuntime(348): at com.badlogic.gdx.backends.android.surfaceview.GLSurfaceViewCupcake$GLThread.run(GLSurfaceViewCupcake.java:646)
07-08 1408.948: E/AndroidRuntime(348): Caused by: java.io.IOException: couldn't load pixmap 8bit only
07-08 1408.948: E/AndroidRuntime(348): at com.badlogic.gdx.graphics.g2d.Gdx2DPixmap.<init>(Gdx2DPixmap.java:57)
07-08 1408.948: E/AndroidRuntime(348): at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:138)
07-08 1408.948: E/AndroidRuntime(348): ... 9 more

Grafika jest robiona w gimpie i teraz skalowana w Adobe Photoshop, wymiary 256x256. O co teraz chodzi?

EDIT: Już załapałem, mam. Dziękuję za pomoc!

1 użytkowników online, w tym zalogowanych: 0, gości: 1