CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: Q.dino con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 7 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 31 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 2 su 2
Discussione:

problema con andengine

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Jun 2012
    Messaggi
    11

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Angry

    problema con andengine

    ciao a tutti ho un piccolo problema.... apparentemente il codice scritto è tutto ok eppure una volta in runtime crassha e in logcat mi riempie di rosso
    questo è il logcat
    codice:
    08-23 10:22:54.723: W/dalvikvm(1196): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
    08-23 10:22:54.743: E/AndroidRuntime(1196): FATAL EXCEPTION: main
    08-23 10:22:54.743: E/AndroidRuntime(1196): java.lang.NullPointerException
    08-23 10:22:54.743: E/AndroidRuntime(1196): 	at com.example.facem.MainActivity.onLoadScene(MainActivity.java:113)
    08-23 10:22:54.743: E/AndroidRuntime(1196): 	at org.anddev.andengine.ui.activity.BaseGameActivity.doResume(BaseGameActivity.java:169)
    08-23 10:22:54.743: E/AndroidRuntime(1196): 	at org.anddev.andengine.ui.activity.BaseGameActivity.onWindowFocusChanged(BaseGameActivity.java:85)
    08-23 10:22:54.743: E/AndroidRuntime(1196): 	at com.android.internal.policy.impl.PhoneWindow$DecorView.onWindowFocusChanged(PhoneWindow.java:2366)
    08-23 10:22:54.743: E/AndroidRuntime(1196): 	at android.view.View.dispatchWindowFocusChanged(View.java:5735)
    08-23 10:22:54.743: E/AndroidRuntime(1196): 	at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:851)
    08-23 10:22:54.743: E/AndroidRuntime(1196): 	at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2557)
    08-23 10:22:54.743: E/AndroidRuntime(1196): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    08-23 10:22:54.743: E/AndroidRuntime(1196): 	at android.os.Looper.loop(Looper.java:137)
    08-23 10:22:54.743: E/AndroidRuntime(1196): 	at android.app.ActivityThread.main(ActivityThread.java:4424)
    08-23 10:22:54.743: E/AndroidRuntime(1196): 	at java.lang.reflect.Method.invokeNative(Native Method)
    08-23 10:22:54.743: E/AndroidRuntime(1196): 	at java.lang.reflect.Method.invoke(Method.java:511)
    08-23 10:22:54.743: E/AndroidRuntime(1196): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    08-23 10:22:54.743: E/AndroidRuntime(1196): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    08-23 10:22:54.743: E/AndroidRuntime(1196): 	at dalvik.system.NativeStart.main(Native Method)
    08-23 10:22:55.323: I/dalvikvm(1196): threadid=3: reacting to signal 3
    08-23 10:22:55.343: I/dalvikvm(1196): Wrote stack traces to '/data/anr/traces.txt'
    e questo è il codice
    codice:
    package com.example.facem;
    
    import java.util.Random;
    
    import org.anddev.andengine.engine.Engine;
    import org.anddev.andengine.engine.camera.Camera;
    import org.anddev.andengine.engine.options.EngineOptions;
    import org.anddev.andengine.engine.options.EngineOptions.ScreenOrientation;
    import org.anddev.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
    import org.anddev.andengine.entity.primitive.Line;
    import org.anddev.andengine.entity.scene.Scene;
    import org.anddev.andengine.input.touch.TouchEvent;
    import org.anddev.andengine.entity.sprite.Sprite;
    import org.anddev.andengine.entity.scene.background.ColorBackground;
    import org.anddev.andengine.opengl.texture.Texture;
    import org.anddev.andengine.opengl.texture.TextureOptions;
    import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas;
    import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory;
    import org.anddev.andengine.opengl.texture.region.TextureRegion;
    import org.anddev.andengine.opengl.texture.region.TextureRegionFactory;
    import org.anddev.andengine.ui.activity.BaseGameActivity;
    
    import android.annotation.SuppressLint;
    import android.view.Display;
    
    
    
    @SuppressLint("ParserError")
    public class MainActivity extends BaseGameActivity {
    
    	/*
    	 * instanzio telecamera
    	 */
    	
    	//larghezza camera
    	private int CAMERA_WIDTH;	
    	//altezza camera
    	private int CAMERA_HEIGHT;
    	//Camera
    	private Camera mCamera;
    	
    	/*
    	 * instanzio grafica
    	 */
    	
    	//instanzio la texture
    	private BitmapTextureAtlas fT;
    	//instanzio la region della texture
    	private TextureRegion fTR;
    
    
    	
    	//carico il motore
    	public Engine onLoadEngine() {
    		
    		//setto la grandezza dello schermo in base al dispositivo
    		final Display dis = getWindowManager().getDefaultDisplay();
    		CAMERA_WIDTH = dis.getWidth();
    		CAMERA_HEIGHT = dis.getHeight();
    		
    		//parametrizzo la camera
    		mCamera =new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
    		
    		//parametrizzo engine 
    		EngineOptions eo = new EngineOptions(true, ScreenOrientation.PORTRAIT, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT),mCamera);
    		
    		//ritorno l'engine con le opzioni
    		return new Engine(eo);
    	}
    
    	//carico le risorse
    	public void onLoadResources() {
    
    		/* Inizializziamo la Texure */
            this.fT = new BitmapTextureAtlas(64, 64, TextureOptions.BILINEAR);		
            //setto la cartella del png
            BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");
    		//creiamo la texture region a partire dal png scelto
    		fTR = BitmapTextureAtlasTextureRegionFactory.createFromAsset(fT, this, "face.png", 0, 0);
    
    		//carico le texture nel motore
    		mEngine.getTextureManager().loadTexture(fT);
    	}
    
    	public Scene onLoadScene() {
    		//dichiaro le scene
    		final Scene scene = new Scene();
    		//SETTO IL BAK
    		scene.setBackground(new ColorBackground(0.09804f, 0.6274f, 0.8784f));
    	       
    		/* Ricaviamo le coordinate del centro della scena */
            final int x = ((CAMERA_WIDTH - fTR.getWidth()) / 2);
            final int y = ((CAMERA_HEIGHT - fTR.getHeight()) / 2);
    		//creo lo sprite
    		final Sprite face = new Sprite(x,y,fTR)
    		//gestisco il drug and drop
    		{
    			@Override
    			public boolean onAreaTouched(TouchEvent ev , float pSTAX, float pSTAY) {
    				this.setPosition(ev.getX() - this.getWidth() / 2, ev.getY() - this.getHeight() / 2);
    				return true;
    			}
    		};
    		
    		//ingrandisco lo sprite
    		face.setScale(3);
    		
    		//rendo draggabile lo sprite
    		scene.registerTouchArea(face);
    		scene.setTouchAreaBindingEnabled(true);
    		
    		//attacco la linea alla scena
    		scene.getLastChild().attachChild(face);
    
    		return scene;
    	}
    
    	public void onLoadComplete() {
    	}
    }
    qualche idea?
    grazie mille

  2.  
  3. #2
    Androidiano


    Registrato dal
    Oct 2010
    Messaggi
    229

    Ringraziamenti
    27
    Ringraziato 77 volte in 35 Posts
    Predefinito

    Ciao, se sviluppi su Eclipse, dalla finestra del logcat puoi fare doppioclick su di una riga e, se questa riferisce una riga del tuo codice, ti porterà direttamente li.
    Ora il tuo logcat segnala un NullPointerException.
    La riga successiva indica riga 113 di MainActivity.java, che ad occhio e croce dovrebbe essere :
    codice:
    //attacco la linea alla scena
    		scene.getLastChild().attachChild(face);
    In pratica credo ti dia errore perchè non hai ancora attaccato nulla a Scene, quindi getLastChild() ritona null, a quel punto la chiamata .attacChild(face) genera l'eccezione.
    Ora non ricordo molto di AndEngine, ma credo che Scene abbia anche un altro modo (forse un attachChild(Entity) diretto) per aggiungere figli alla scena.

    ciao
    Felice possessore di un LG O1 con GingerLOL 1.5.2 e di un Mediacom Smartpad 810c con Pistoneone 4.2.1 / 5.0 Samsung Galaxy Tab 10.1 P7510 (originale per ora) Mediacom Smartpad 715i (ROM smartpao 2.1), Mediacom Smartpad 842i (ROM smartpao 2.0)
    Mini-Forum-FAQ per Mediacom Smartpad 810c

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy