2015-07-19 161 views
0

我正在使用libgdx,因为我想调试我的游戏,我试过导入从Android实用工具记录到位于“core \ src \ com”中的主游戏文件\ mygdx \游戏\”。出于某种原因,AndroidStudio不允许我导入该类。任何人都可以给我一个解决方案 试过: 重建项目。Android Studio无法解析符号导入时的日志andoid.util.Log

+0

这可能是因为** **核心不依赖于机器人。只有ANDROID级别取决于android。您需要制作一个界面,并为桌面和其他版本提供实施。 – EpicPandaForce

+0

@EpicPandaForce所以我不能在Core中使用android库。好,谢谢!顺便说一下,你知道与Log类似吗?这很方便。 –

+0

只要你为它提供一个接口,你就可以使用它。我会尽量举一个例子,尽管我大约一年半没有使用LibGDX ... – EpicPandaForce

回答

0

由于它在页面Interfacing with Platform-specific Code下的wiki中指定,您需要做的是为您要使用的库提供一个接口,并在内核中使用接口。你必须做的是提供每个启动器类的实现。

例如,您的桌面快速启动栏看起来像这样,

package com.badlogic.drop; 

import com.badlogic.gdx.backends.lwjgl.LwjglApplication; 
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; 

    public class Main { 
     public static void main(String[] args) { 
      LwjglApplicationConfiguration config = new LwjglApplicationConfiguration(); 
      config.title = "Drop"; 
      config.width = 800; 
      config.height = 480; 
      new LwjglApplication(new Drop(), config); 
     } 
    } 

你可以在这里看到new Drop() - 你可以指定你想在游戏中的绑定额外的依赖,对不对?

public class Drop extends Game { 
    public static final String TAG = Drop.class.getSimpleName(); 

    private Logger logger; 

    public Drop(Logger logger) { 
     this.logger = logger; 
     logger.debug(TAG, "`Drop` game initialized."); 
     ... 
    } 
} 

而且在桌面就变成

 new LwjglApplication(new Drop(new DesktopLogger()), config); 

其中记录仪[核心]

public interface Logger { 
    void debug(String tag, String message); 
    //... 
} 

和桌面记录仪[桌面]

public class DesktopLogger implements Logger { 
    public void debug(String tag, String message) { 
     System.out.println("D/" + tag + ": " + message); 
    } 
} 

和Android记录器是[android]

public class AndroidLogger implements Logger { 
    public void debug(String tag, String message) { 
     Log.d(tag, message); 
    } 
} 

所以Android启动变得

public class AndroidLauncher extends AndroidApplication { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     AndroidApplicationConfiguration config= new AndroidApplicationConfiguration(); 
     config.useAccelerometer = false; 
     config.useCompass = false; 

     initialize(new Drop(new AndroidLogger()), config); 
    } 
} 
相关问题