libgdx - 尝试将 facebook 与 libgdx 集成,在哪里实现此代码,因为没有“模块:应用程序”存在?
问题描述
根据脸书:-
“将以下内容添加到(module: app) 文件的dependencies {}
部分以编译最新版本的 Facebook SDK:build.gradle
implementation 'com.facebook.android:facebook-android-sdk:[4,5)'
"
我在 android studio 项目中没有看到任何名为 app 的模块。在哪里添加上面的行?
解决方案
module:app
在这种情况下,仅表示主要的 android 应用程序。因此,您应该将依赖项添加到 android 模块。
然后我打赌你的下一个问题是如何从核心使用这个库,因为 Android 模块依赖于核心模块,反之亦然,所以你无法访问核心项目中的库。一种方法是将合约传递给平台启动器,每个启动器都以不同的方式实现它。
//Simple contract
public interface IPlatformContract {
void runThis();
}
// Core project (MyGame)
private IPlatformContract platformContract;
public MyGame(IPlatformContract platformContract) {
this.platformContract = platformContract;
}
//DesktopLauncher
public static void main (String[] arg) {
LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
// Launch desktop with it's own implementation of the contract.
new LwjglApplication(new MyGame(new IPlatformContract() {
@Override
public void runThis() {
System.out.println(" I run on desktop!");
}
}), config);
}
//AndroidLauncher, different way. Here the class itself implements the contract.
public class AndroidLauncher extends AndroidApplication implements IPlatformContract{
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
initialize(new LibgdxTestEnvironment(this), config);
}
@Override
public void runThis() {
System.out.println("I run on android!");
}
}
您可以将合同传递给其他类,例如核心项目中的屏幕,以便您可以访问它。你甚至可以制作一个单例。
推荐阅读
- cordova - 是否可以使用“Set-Cookie”响应标头在 Cordova 中设置 cookie?
- python - from urllib3.util.ssl_ import ( ImportError: cannot import name ssl
- python - 使用 tf.distribute 时,如何避免在每个 tf.keras 时期重新填充我的 tf.data 洗牌缓冲区?
- java - 我不能在一个数组中存储多个值
- graphql - Angular Apollo GraphQL Devtools 选项卡不可见
- node.js - 用于带有帆的 react-redux 应用程序的 SSR
- mysql - 错误 1140 (42000) 在没有 GROUP BY 的聚合查询中,表达式 #1
- javascript - 更改/添加 SVG 矩阵
- c# - 显示来自 linq 查询的数据的问题
- data-visualization - 如何在 Oracle 可视化云中更改语言?