将Android Studio与AndEngineTMXTileExtension一起使用时出现TMXLoader错误

尼尔·帕特尔

我正在尝试创建类似游戏的塔防。我已使用“平铺地图编辑器”创建了平铺等距地图,并将其保存为android studio中的资产文件夹。我目前正在使用andengine在我的活动中加载地图。

我的MainActivity.Java:

package com.example.neelpatel104.towerfinisher;


import org.andengine.engine.Engine;
import org.andengine.engine.LimitedFPSEngine;
import org.andengine.engine.camera.BoundCamera;
import org.andengine.engine.options.EngineOptions;
import org.andengine.engine.options.ScreenOrientation;
import org.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
import org.andengine.entity.scene.Scene;
import org.andengine.entity.util.FPSLogger;
import org.andengine.extension.tmx.TMXLayer;
import org.andengine.extension.tmx.TMXLoader;
import org.andengine.extension.tmx.TMXProperties;
import org.andengine.extension.tmx.TMXTile;
import org.andengine.extension.tmx.TMXTileProperty;
import org.andengine.extension.tmx.TMXTiledMap;
import org.andengine.extension.tmx.util.exception.TMXException;
import org.andengine.extension.tmx.util.exception.TMXLoadException;
import org.andengine.opengl.texture.TextureOptions;
import org.andengine.ui.activity.SimpleBaseGameActivity;
import org.andengine.util.debug.Debug;

public class MainActivity extends SimpleBaseGameActivity  {
private TMXTiledMap mTMXTiledMap;
    private TMXLayer tmxLayer;
    private static final int CAMERA_WIDTH=550;
    private static final int CAMERA_HEIGHT=300;

    private BoundCamera mBoundChaseCamera;
    protected int mCactusCount;

@Override
public Engine onCreateEngine(EngineOptions engineOptions){
    return new LimitedFPSEngine(engineOptions,60);
}
    @Override
    public EngineOptions onCreateEngineOptions(){
        this.mBoundChaseCamera = new BoundCamera(0,0,CAMERA_WIDTH,CAMERA_HEIGHT);return new EngineOptions(true,ScreenOrientation.LANDSCAPE_FIXED,new RatioResolutionPolicy(CAMERA_WIDTH,CAMERA_HEIGHT),this.mBoundChaseCamera);
}

    @Override
    protected void onCreateResources() {
    final TMXLoader tmxLoader = new TMXLoader(getAssets(),getTextureManager(),TextureOptions.NEAREST,mEngine.getVertexBufferObjectManager());
    try {
       this.mTMXTiledMap = tmxLoader.loadFromAsset("map/levelone.tmx");
   } catch (final TMXLoadException e){
            Debug.e(e);
        }
    }

    @Override
    protected Scene onCreateScene() {
       this.mEngine.registerUpdateHandler(new FPSLogger());
        final Scene scene = new Scene();
        this.tmxLayer = this.mTMXTiledMap.getTMXLayers().get(0);

        scene.setChildrenVisible(false);
        scene.setBackgroundEnabled(false);
        scene.attachChild(this.tmxLayer);

        return scene;
    }

}

下面的行给我一个错误:

 final TMXLoader tmxLoader = new TMXLoader(getAssets(),getTextureManager(),TextureOptions.NEAREST,mEngine.getVertexBufferObjectManager());

这是我完整的堆栈跟踪:

Information:Gradle tasks [:app:clean, :app:generateDebugSources,
:app:generateDebugAndroidTestSources, :app:mockableAndroidJar,
:app:prepareDebugUnitTestDependencies, :app:assembleDebug]
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/util/math/MathUtils.java
Error:(89, 50) error: cannot find symbol method ceil(float)
Error:(163, 42) error: cannot find symbol method sin(float)
Error:(164, 44) error: cannot find symbol method cos(float)
Error:(239, 19) error: cannot find symbol method sqrt(float)
Error:(246, 19) error: cannot find symbol method sqrt(float)
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/util/modifier/ease/EaseElasticOut.java
Error:(69, 67) error: cannot find symbol method sin(float)
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/util/modifier/ease/EaseElasticIn.java
Error:(70, 49) error: cannot find symbol method sin(float)
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/util/modifier/ease/EaseSineInOut.java
Error:(52, 28) error: cannot find symbol method cos(float)
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/util/modifier/ease/EaseCircularOut.java
Error:(58, 19) error: cannot find symbol method sqrt(float)
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/util/modifier/ease/EaseCircularIn.java
Error:(57, 21) error: cannot find symbol method sqrt(float)
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/util/modifier/ease/EaseSineOut.java
Error:(59, 19) error: cannot find symbol method sin(float)
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/util/modifier/ease/EaseSineIn.java
Error:(59, 20) error: cannot find symbol method cos(float)
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/util/adt/transformation/Transformation.java
Error:(122, 30) error: cannot find symbol method sin(float)
Error:(123, 30) error: cannot find symbol method cos(float)
Error:(139, 30) error: cannot find symbol method sin(float)
Error:(140, 30) error: cannot find symbol method cos(float)
Error:(160, 30) error: cannot find symbol method sin(float)
Error:(161, 30) error: cannot find symbol method cos(float)
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/util/levelstats/LevelStatsDBConnector.java
Error:(12, 23) error: package org.apache.http does not exist
Error:(13, 23) error: package org.apache.http does not exist
Error:(14, 23) error: package org.apache.http does not exist
Error:(15, 30) error: package org.apache.http.client does not exist
Error:(16, 37) error: package org.apache.http.client.entity does not exist
Error:(17, 38) error: package org.apache.http.client.methods does not exist
Error:(18, 35) error: package org.apache.http.impl.client does not exist
Error:(19, 31) error: package org.apache.http.message does not exist
Error:(82, 12) error: cannot find symbol class HttpClient
Error:(82, 40) error: cannot find symbol class DefaultHttpClient
Error:(83, 12) error: cannot find symbol class HttpPost
Error:(83, 36) error: cannot find symbol class HttpPost
Error:(86, 17) error: cannot find symbol class NameValuePair
Error:(86, 63) error: cannot find symbol class NameValuePair
Error:(88, 29) error: cannot find symbol class BasicNameValuePair
Error:(89, 29) error: cannot find symbol class BasicNameValuePair
Error:(90, 29) error: cannot find symbol class BasicNameValuePair
Error:(91, 29) error: cannot find symbol class BasicNameValuePair
Error:(92, 29) error: cannot find symbol class BasicNameValuePair
Error:(94, 29) error: cannot find symbol class UrlEncodedFormEntity
Error:(97, 12) error: cannot find symbol class HttpResponse
Error:(100, 23) error: cannot find symbol variable HttpStatus
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/util/algorithm/path/astar/EuclideanHeuristic.java
Error:(40, 19) error: cannot find symbol method sqrt(float)
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/opengl/texture/atlas/bitmap/source/decorator/ColorSwapBitmapTextureAtlasSourceDecorator.java
Error:(7, 24) error: cannot find symbol class AvoidXfermode
Error:(8, 38) error: package android.graphics.AvoidXfermode does not exist
Error:(70, 31) error: cannot find symbol class AvoidXfermode
Error:(70, 86) error: cannot find symbol variable Mode
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/opengl/font/StrokeFont.java
Error:(76, 36) error: cannot find symbol method floor(float)
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/entity/particle/ParticleSystem.java
Error:(181, 111) error: cannot find symbol method floor(float)
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/entity/particle/emitter/CircleParticleEmitter.java
Error:(50, 54) error: cannot find symbol method cos(float)
Error:(51, 54) error: cannot find symbol method sin(float)
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/entity/particle/emitter/CircleOutlineParticleEmitter.java
Error:(50, 54) error: cannot find symbol method cos(float)
Error:(51, 54) error: cannot find symbol method sin(float)
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/entity/modifier/PathModifier.java
/home/neelpatel104/AndroidStudioProjects/TowerFinisher/AndEngine/src/main/java/org/andengine/engine/camera/hud/controls/AnalogOnScreenControl.java
Error:(85, 39) error: cannot find symbol method cos(float)
Error:(85, 71) error: cannot find symbol method sin(float)
Error:Execution failed for task ':AndEngine:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED
Information:Total time: 1 mins 40.808 secs
Information:55 errors
Information:0 warnings
Information:See complete output in console

我不明白问题是什么。每当我尝试调试程序时,都会出现此错误。我什至尝试重新安装andengine和TMXTiledMAP扩展,但是错误始终存在。我希望有人来看看。

谢尔盖·S。

构建失败,因为某些类和方法在最新版本中已弃用。您可以尝试减少andengine build.gradle文件的compileSdkVersion。您还可以通过简单的更改来解决大多数这些错误:

  1. 通过使用标准Math类更改所有数学调用,例如sin,cos,floor,sqrt,ceil等:将FloatMath.sin()替换(float)Math.sin(),其他方法类似。
  2. 要修复org.apache.http软件包不存在的错误:将useLibrary'org.apache.http.legacy'添加到andengine build.gradle文件中:

    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.0.0'
        }
    }
    
    apply plugin: 'com.android.library'
    
    android {
        compileSdkVersion 23
        //buildToolsVersion '26'
        sourceSets {
            main {
                manifest.srcFile 'AndroidManifest.xml'
                java.srcDirs = ['src']
                resources.srcDirs = ['src']
                res.srcDirs = ['res']
                assets.srcDirs = ['assets']
            }
        }
        useLibrary 'org.apache.http.legacy' //for support 23+ sdk
    }
    ...
    
  3. 不推荐使用类voidXfermode,因此按照上面的代码设置compileSdkVersion 23如果有人以其他方式描述如何在不降低compileSdkVersion的情况下修复避免Xakemode,我将不胜感激。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将pynput与pyinstaller一起使用时出现错误

将EclEmma(eclipse插件)与JMockit一起使用时出现错误(仅与Delegate()一起使用)

将排序与 seq::index::sample 一起使用时出现 Rust 错误

将撇号与 materialize 一起使用时出现类型错误

将cx_freeze与pythoncom一起使用时出现导入错误

将 Sphinx 与 Django 一起使用时出现 Autodoc 错误

将拆分与数据帧一起使用时出现未找到的错误

将模糊搜索与猫鼬一起使用时出现打字稿错误

将SQL Server与MySQL一起使用时出现“不支持选项”错误

解决将OnModelCreating与ApplicationDbContext一起使用时出现的“未定义键”错误?

将Scanner与Double一起使用时出现Java错误

将std :: invoke_result_t与通用lambda一起使用时出现硬错误

当将`track by $ index`与过滤器一起使用时,出现错误。怎么解决呢?

将 HttpServlet 与 JAVA 一起使用时出现关闭错误

将Pandoc与Markdown一起使用时出现紧缩列表错误

将 pyyaml 与 FastAPI 一起使用时出现 CORS 错误

将SQL与INSERT INTO一起使用时出现错误1064 ... SELECT ...重复键更新

将Typescript与React-Redux一起使用时出现类型错误

将HWIOAuthBundle与FOSUserBundle一起使用时出现“找不到用户名”错误

将 QueryBuilder 与表达式一起使用时出现语义错误

将语法与SpeechRecognition包一起使用时出现运行时错误

将信号量与POSIX共享内存一起使用时出现分段错误

将Redux-Form与React-Redux Connect一起使用时出现TypeScript错误

Django-将命名URL与参数一起使用时出现NoReverseMatch错误

将Pastespecial与sourcetheme一起使用时出现运行时错误1004

将 DQL 与 symfony 一起使用时出现 SQL 错误

将 join 与 delete 语句一起使用时出现语法错误

将GridSearchCSV与KNN一起使用时始终会出现属性错误

将Azure Pipelines与多目标项目一起使用时出现错误NETSDK1061