导入andoid.util.Log时,Android Studio无法解析符号日志

时间:2015-07-19 13:26:02

标签: android android-studio

我正在使用libgdx,因为我想调试我的游戏,我尝试从Android实用程序导入Log到位于“core \ src \ com \ mygdx \ game \”中的主游戏文件。出于某种原因,AndroidStudio不允许我导入该类。有谁能指出我的解决方案? 尝试: 重建项目。

1 个答案:

答案 0 :(得分: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);

Logger是[核心]

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 logger是[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);
   }
}