2017-02-19 5 views
0

게임과 같은 타워 방어를 만들려고합니다. Tiled Map Editor를 사용하여 타일 된 등각 투영지도를 만들고 안드로이드 스튜디오의 자산 폴더에 저장했습니다. 나는 현재 나의 활동에서지도를로드하기 위해 andengine을 사용하고있다. 아래 라인은 나에게 오류를주고있다AndEngineTMXTileExtension과 함께 Android Studio를 사용할 때의 TMXLoader 오류

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; 
    } 

} 

:

내 MainActivity.Java는

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 

이해가 안 : 여기

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

내 전체 스택 추적입니다 무슨 문제 야. 이 오류는 프로그램을 디버깅 할 때마다 나타납니다. 나는 andengine과 TMXTiledMAP Extension을 다시 설치하려고 시도했으나 오류는 항상있었습니다. 누군가가 그걸 보게된다면 좋겠어요.

+0

무엇이 오류입니까? 전체 스택 추적을하십시오. 또한 정확히 어디에서 일어나는 지 확인하십시오. – bc004346

답변

0

일부 클래스와 메서드는 최신 버전에서 사용되지 않으므로 빌드가 실패했습니다. andengine build.gradle 파일의 compileSdkVersion을 줄이려고 시도 할 수 있습니다. (에)FloatMath.sin을 (대체 : 표준 수학 클래스를 사용하여 죄, COS, 바닥, SQRT, 천장을 만들다 등 같은 모든 수학적 통화

  1. 변경 : 또한 당신은 간단한 변경으로 이러한 오류의 대부분을 해결할 수 있습니다 float) Math.sin() 및 다른 방법에 대해 비슷합니다. ,

    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 
    } 
    ... 
    
  2. 클래스 AvoidXfermode가 사용되지 않습니다 : build.gradle 파일을 andengine하는 useLibrary 'org.apache.http.legacy'를 추가 :

  3. 는 오류가 존재하지 않는 org.apache.http 패키지를 해결하려면 위 코드에서와 같이 compileSdkVersion 23을 설정하십시오. compileSdkVersion을 줄이지 않고 다른 방법으로 AvoidXfermode를 수정하는 방법을 설명하면 감사하겠습니다.

관련 문제