8

hereの指示に従って TexturePacker を実行する gradle タスクを作成しようとしています。(EclipseではなくAndroid Studioとそのディレクトリ構造を使用していることに注意してください。)最初に、Android Studioプロジェクトのbuild.gradle.

import com.badlogic.gdx.tools.texturepacker.TexturePacker
task texturePacker << {
  if (project.ext.has('texturePacker')) {
    logger.info "Calling TexturePacker: "+texturePacker
    TexturePacker.process(texturePacker[0], texturePacker[1], texturePacker[2])
  }
}

これによりエラーが発生しました

クラス com.badlogic.gdx.tools.texturepacker.TexturePacker を解決できません

texturePackerタスクをbuild.gradleデスクトップ プロジェクトに移動すると、同じエラーが発生します。http://www.reddit.com/r/libgdx/comments/2fx3vf/could_not_find_or_load_main_class_texturepacker2/によると、デスクトップ プロジェクトの依存関係の下のcompile "com.badlogicgames.gdx:gdx-tools:$gdxVersion"ルートにも追加する必要があります。build.gradleそうすると、まだ同じエラーが発生します。

だから私はいくつかの質問があります:

  1. texturePackerタスクの正しい場所はどこですか? これはどれbuild.gradleに入れますか?

  2. unable to resolve class...依存関係の問題とエラーを解決するにはどうすればよいですか?

  3. これを gradle で実行する場合、入力ディレクトリと出力ディレクトリ、およびアトラス ファイルを指定するにはどうすればよいですか? (最初の 2 つの質問が解決されたと仮定します。)

4

1 に答える 1

11

ビルドスクリプトの依存関係に gdx-tools を追加することで機能しました。

buildscript{
    dependencies {
       ...
       classpath 'com.badlogicgames.gdx:gdx-tools:1.5.4'
    }
}

これにより、私のデスクトップの build.gradle はテクスチャ パッカー クラスをインポートできました。

import com.badlogic.gdx.tools.texturepacker.TexturePacker
task texturePacker << {
    if (project.ext.has('texturePacker')) {
        logger.info "Calling TexturePacker: "+ texturePacker
        TexturePacker.process(texturePacker[0], texturePacker[1], texturePacker[2])
    }
}

デスクトップ プロジェクトの ext に texturePacker を定義する必要があることに注意してください。

project.ext {
    mainClassName = "your.game.package.DesktopLauncher"
    assetsDir = new File("../android/assets");
    texturePacker = ["../images/sprites", "../android/assets", "sprites"]
}
于 2015-07-27T05:30:09.873 に答える