Libgdx: найдено несколько файлов с независимым от ОС путем «libgdx-freetype.dylib» - PullRequest
0 голосов
/ 10 октября 2018

Здравствуйте, программисты,

У меня проблемы со сборкой моей игры libgdx для Android с зависимостями шрифтов freetype.

Версия Libgdx: 1.9.8

Версия Gradle:3.2.0

Версия Android Studio: 3.1.4

Даже без каких-либо зависимостей для шрифта freetype, объявленного в корневом файле build.gradle и очистки проекта, я получаю следующую ошибку при попыткесборка для Android:

Не удалось выполнить задачу ': android: transformResourcesWithMergeJavaResForDebug'.

Найдено более одного файла с независимым от ОС путем 'libgdx-freetype.dylib'

Следуя описанию интеграции шрифта freetype, я добавил следующие зависимости, но все равно получаю ошибку выше.

project(":desktop") {
    …
    dependencies {
        …
        //freetype font
        compile "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"
    }
}

project(":android") {
        …
    dependencies {
        …
        //freetype font
        api "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
        natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi"
        natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a"
        natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a"
        natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86"
        natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64"
    }
}

project(":core") {
        …
    dependencies {
        …
        //freetype font
        implementation "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
    }
}

Я перепробовал все возможные комбинации compile / creation / api, нокажется, ничего не работает.

После некоторого поиска похожих сообщений я добавил следующие строки в файл build.gradle в Android Project:

android {
    …
    packagingOptions {
        …
        pickFirst 'libgdx-freetype.dylib'
        pickFirst 'libgdx-freetype64.dylib'
        pickFirst 'gdx-freetype.dll'
        pickFirst 'gdx-freetype64.dll'
    }
    …
}

И теперь я получаю следующую ошибку при попытке построить для Android:

Не удалось выполнить задачу ': android: transformDexArchiveWithExternalLibsDexMergerForDebug'.

Тип программы уже представлен: com.badlogic.gdx.graphics.g2d.freetype.FreeType $ Face

Любая помощь в решении этой проблемы будет принята с благодарностью.

РЕДАКТИРОВАТЬ: Созданоновый проект, скопировал мой код и теперь он работает ...

1 Ответ

0 голосов
/ 16 октября 2018

У меня была та же ошибка, что и у вас.

В моем файле gradle.build это было добавлено в зависимости от ядра:

implementation "com.badlogicgames.gdx:gdx-tools:$gdxVersion" 

Я добавил это, чтобы сделать упаковщик текстур длямоя игра, и я полагаю, что некоторые библиотеки создают ошибку при запуске программы.

просто закомментируйте ее (я использую реализацию вместо компиляции, потому что она устарела)

//implementation "com.badlogicgames.gdx:gdx-tools:$gdxVersion"
...