Нужна помощь (ошибки в Эклипсе)

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
ntrb
Сообщения: 2
Зарегистрирован: 19 май 2014, 21:31

Нужна помощь (ошибки в Эклипсе)

Сообщение ntrb » 23 май 2014, 13:27

1.Нашел статейку http://habrahabr_ru/post/192092/ , описано создание живой обоины по примеру в статье. Данные ошибки основаны на разных версиях СДК у автора и у меня. К тому же у автора не наблюдается активити вообще. После валидации проекта описанного в статье, эклипс скушал, эмуль не выдал ничего просто белый экран. Потом я соорудил кое-как новый проэкт и накопировал ресурсов из примера в нов проект - ругани ж было, но вот что я не смог допилить это нижеследующие ошибки в коде. Буду очень благодарен если поможете кто в курсе как поправить ситуацию.
2. Я создал бланк_активити (вариант уже с фрагмент_лэйаут) и не понимаю как прикрутить к окну настройки и визуализацию проекта через fragment_layout.

Помогите пожалуйста. :cry:
ПС. У меня винда ХРв нее влазит только JDK 7.55, может поэтому АПИ только 8, не разобрался какие меры провести чтобы проект заработал или хотя бы перестал ругаться.
ПСС. Чот спойлер не получился.

[spoiler]
/*/
package com.example.ae_template;

import org.andengine.engine.camera.Camera;
import org.andengine.engine.options.EngineOptions;
import org.andengine.engine.options.ScreenOrientation;
import org.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
import org.andengine.entity.sprite.Sprite;
import org.andengine.extension.ui.livewallpaper.BaseLiveWallpaperService;
import org.andengine.opengl.texture.TextureOptions;
import org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas;
import org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory;
import org.andengine.opengl.texture.region.ITextureRegion;
import org.andengine.opengl.util.GLState;

import android.transition.Scene;
import android.util.DisplayMetrics;
import android.view.WindowManager;

вот тут ошибка - The type Main must implement the inherited abstract method IGameInterface.onPopulateScene(Scene, IGameInterface.OnPopulateSceneCallback)
public class Main extends BaseLiveWallpaperService {
// � абота с камерой и размерами
// Камера
public Camera mCamera;
// � азмеры камеры
public static int CAMERA_WIDTH;
public static int CAMERA_HEIGHT;
// Пропорции которым должны соответствовать соответствующие объекты
public static float _ratio; // Пропорции для заднего фона

// � абота со сценой
public Scene mScene; // Сцена

// � абота со спрайтами
public ITextureRegion bg_TextureRegion; // Хранилище для текстуры заднего фона
private BitmapTextureAtlas mOnScreenControlTexture0; // Объект для работы с текстурой заднего фона
public ITextureRegion sun_TextureRegion; // Хранилище для текстуры солнца
private BitmapTextureAtlas mOnScreenControlTexture1; // Объект для работы с дополнительными текстурами (солнцем)
// Выводимые спрайты на экран
public static Sprite bg; // Спрайт фона
public static int bgWidth = 1930, bgHeight = 1050; // Ширина и высота спрайта заднего фона
public static Sun sun; // Спрайт солнца

// Другие переменные/объекты
/*Если вы хотите работать с настройками обоев, то используйте данные объекты*/
// � абота с файлом настройки
public final static String PREFERENCES = "gc986.template.livewallpaper"; // Адрес хранилища настроек обоев
//public static SharedPreferences prefs; // Объект для работы с настройками обоев

/**Обрабатываем переориентацию экрана*/
@Override
public void onSurfaceChanged(final GLState pGLState, final int pWidth, final int pHeight) {
super.onSurfaceChanged(pGLState, pWidth, pHeight);
final DisplayMetrics displayMetrics = new DisplayMetrics();
WindowManager wm = (WindowManager)getSystemService(WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(displayMetrics);
wm.getDefaultDisplay().getRotation();
// весь предыдущий код нужен для того что бы узнать новые размеры окна
// так как наша картинка масштабируется по размерам окна
this.mEngine.getCamera().set(0, 0, pWidth, pHeight); // это и есть та самая строчка
}

/** Вычисление пропорции для изображений*/
public float GetTrueProportion(int width, int height, float imgWidth, float imgHeight) {
// Вычисление пропорций для правильного отображения картинок
float _Ratio = 0;
if (imgWidth < imgHeight) {
_Ratio = (float) width / imgWidth;
} else{
_Ratio = (float) height / imgHeight;
}
return _Ratio;
}

/**Создание движка*/
@Override
public EngineOptions onCreateEngineOptions() {
//Настройка опций движка
final DisplayMetrics displayMetrics = new DisplayMetrics();
WindowManager wm = (WindowManager)getSystemService(WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(displayMetrics);
wm.getDefaultDisplay().getRotation();
CAMERA_WIDTH = displayMetrics.widthPixels;
CAMERA_HEIGHT = displayMetrics.heightPixels;

// Создание комеры
this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
// Создание объекта для доступа к настройкам обоев
//prefs = getSharedPreferences(PREFERENCES, Context.MODE_PRIVATE);
// Возвращаем в систему все настройки
return new EngineOptions(true, ScreenOrientation.PORTRAIT_FIXED, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera);
}

@Override
public void onCreateResources(OnCreateResourcesCallback pOnCreateResourcesCallback) throws Exception {
// � абота с текстурами
// Задний фон
this.mOnScreenControlTexture0 = new BitmapTextureAtlas(this.getTextureManager(), 1930, 1050, TextureOptions.BILINEAR_PREMULTIPLYALPHA); // Готовим объект под загрузку изображения заднего фона
this.bg_TextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mOnScreenControlTexture0, this, "gfx/bg.jpg", 0, 0); // Объект для загрузки заднего фона
this.getEngine().getTextureManager().loadTexture(this.mOnScreenControlTexture0); // Процедура загрузки заднего фона
// Солнце
this.mOnScreenControlTexture1 = new BitmapTextureAtlas(this.getTextureManager(), 450, 450, TextureOptions.BILINEAR_PREMULTIPLYALPHA); // Готовим объект под загрузку изображения солнца
this.sun_TextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mOnScreenControlTexture1, this, "gfx/sun.png", 0, 0); // Объект для загрузки солнца
this.getEngine().getTextureManager().loadTexture(this.mOnScreenControlTexture1); // Процедура загрузки солнца
// Конец загрузки ресурсов и запуск процедуры работы со сценой (создание сцены)
pOnCreateResourcesCallback.onCreateResourcesFinished();
}

@Override
public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) throws Exception {
вот тут ошибка - The constructor Scene() is undefined
// Создание сцены
mScene= new Scene();

// Настройка и создание заднего фона
bg = new Sprite(0,0,this.bg_TextureRegion,getVertexBufferObjectManager()){
@Override
protected void draw(GLState pGLState, Camera pCamera) {
super.draw(pGLState, pCamera);
pGLState.enableDither();
}

// Обработка обновления состояния картинки
@Override
protected void onManagedUpdate(final float pSecondsElapsed) {
// Настраиваем размер картинки
this.setSize(Main.bgWidth * Main._ratio, Main.bgHeight * Main._ratio);
// Настраиваем позицию картинки (размещаем по центру)
bg.setPosition((-bg.getWidth()) / 2f + Main.CAMERA_WIDTH / 2f, 0);
}
};
// Вычисляем пропорции картинки
_ratio = GetTrueProportion(this.CAMERA_WIDTH, this.CAMERA_HEIGHT, bg.getWidth(), bg.getHeight());
// Настройка размера спрайта заднего фона
bg.setSize(bg.getWidth() * _ratio, bg.getHeight() * _ratio);
// Перемещаем фон на правильную позицию
bg.setPosition((this.CAMERA_WIDTH - bg.getWidth()) / 2, 0);
// Добавляем задний фон на сцену
вот тут ошибка - The method attachChild(Sprite) is undefined for the type Scene
mScene.attachChild(bg);

// Настройка и создание солнца
sun = new Sun(0, 0, 1, this.sun_TextureRegion,getVertexBufferObjectManager());
// Добавляем солнце на сцену
вот тут ошибка - The method attachChild(Sun) is undefined for the type Scene
mScene.attachChild(sun);

// Отправляем сообщение что закончили формировать сцену
вот тут ошибка - The method onCreateSceneFinished(org.andengine.entity.scene.Scene) in the type IGameInterface.OnCreateSceneCallback is not applicable for the arguments (android.transition.Scene)(mScene);
}
вот тут ошибка - The method onPopulateScene(Scene, IGameInterface.OnPopulateSceneCallback) of type Main must override or implement a supertype method
@Override
public void onPopulateScene(Scene pScene,
OnPopulateSceneCallback pOnPopulateSceneCallback) throws Exception {
// TODO Auto-generated method stub
pOnPopulateSceneCallback.onPopulateSceneFinished();
}
}
[/spoiler]

Donart
Сообщения: 114
Зарегистрирован: 06 ноя 2013, 08:59

Re: Нужна помощь (ошибки в Эклипсе)

Сообщение Donart » 23 май 2014, 14:29

Видимо не те импорты, у Вас import android.transition.Scene, а надо org.andengine.entity.scene.Scene

Ответить