Пытаетесь интегрировать facebook с libgdx, где реализовать этот код, потому что нет "module: app"? - PullRequest
0 голосов
/ 25 августа 2018

Согласно Facebook: -

"Добавьте следующее в раздел dependencies {} вашего build.gradle (module: app) файла, чтобы скомпилировать последнюю версию SDK Facebook:

implementation 'com.facebook.android:facebook-android-sdk:[4,5)' "

Я не вижу ни одного модуля с именем app в проекте android studio. Где добавить строку выше?

1 Ответ

0 голосов
/ 26 августа 2018

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!");
    }
}

Вы можете передать контракт другим классам, таким как экраны в вашем основном проекте, чтобы иметь к нему доступ. Вы даже можете сделать синглтон.

...