【问题标题】:Unable to add AndEngine to Android Studio无法将 AndEngine 添加到 Android Studio
【发布时间】:2014-01-31 11:46:17
【问题描述】:

我试图用将近 2 天的时间将 AndEngine 添加到 Android Studio 但无法这样做。我尝试了以下两种方法,都没有成功。

第一次尝试 我从GitHub Link 下载了 AndEngine 代码——这不是 Gradle 项目

并尝试将其添加到我的 Android Studio build.gradle 和 settings.gradle,但我收到此错误,我的屏幕截图:https://postimg.cc/image/5mcvpvsar/ (我想我收到这个错误是因为 AndEngine 不是一个 gradle 项目 - 如何使它成为一个 GRADLE 项目??)

第二次尝试 我还尝试在 /libs 文件夹中添加 andengine.jar (我刚刚搜索过的文件)并右键单击 - >“添加为库”,但我仍然无法在我的项目文件。

所有在线可用的教程都在 Eclipse 中,我使用的是 Android Studio。

我什至无法开始。

更新:是的,我放弃了使用 Android Studio for AndEngine!我花了 15 分钟在 Eclipse 中完成这项工作,相比之下,我在 Android Studio 上度过了不成功的周末(我永远不会回来了!)

【问题讨论】:

  • 你试过git clone 和engine 项目将它添加为Android Studio 中的一个模块吗?
  • 我做了 git clone 并使用@pyus13 在stackoverflow.com/questions/21071522/… 的步骤添加为模块。有其他方法吗?
  • 哦,我说的是非 gradle 项目
  • 我想我需要使用 Ant 创建 .jar 文件?可以开一个单独的线程。
  • 不,你不必这样做,如果你有非 gradle 项目,那么在项目结构中你可以添加模块,在这种情况下将是 AndEngine 项目文件夹

标签: android gradle android-studio andengine android-gradle-plugin


【解决方案1】:

我使用这个技术:我在我的settings.gradle中设置了这个

include 'andengine'

project(':andengine').projectDir = new File(settingsDir, '../relative/path/to/andengine')

位于项目的根目录中(我认为 gradle 已经为您的主项目创建了它)。

在 AndEngine 中为 AndEngine 项目使用如下build.gradle

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.+'
    }
}

apply plugin: 'android-library'

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }
}

并添加项目的依赖项

compile project(':andengine')

也许您必须关闭并重新打开 Android Studio,但通常对我来说这是可行的。

顺便说一句,在写完答案后,我看到有人打开了 pull request 用于 gradle 构建文件。

【讨论】:

  • 非常感谢您的回复,但是我仍然无法执行“import org.andengine.*...”。我的设置截图在:postimg.org/image/htzjwulqr,我做对了吗?你的意思是'settings.gradle'而不是'gradle.settings'吗? (在截图中,'Practice' 是我的 App 文件,文件结构中的 'AndEngine' 来自 GitHub)
  • 我的 settings.gradle 文件有这个 'include ':Practice' include ':AndEngine''
  • 你是对的,是settings.gradle,对不起:P BTW 我编辑了答案:您还需要在主项目的依赖项部分添加compile project(':andengine') 行。
  • 我仍然无法导入 org.andengine.*,这是我设置的 30 年代视频:youtube.com/watch?v=x_X6JX97Y-s。如果您能指出我在这里做错了什么,我们将不胜感激。
  • 您还必须在settings.gradle 中添加project(':andengine').projectDir = 部分,否则Android Studio 无法找到该库。
【解决方案2】:

我为此创建了一个教程 - 如何将 Andengine、Andengine Tile Map、Andengine PhysicsBox2D 添加到 Android Studio 0.8.9。

这是链接,我希望一切正常 - https://docs.google.com/document/d/1zk2QjNiPvkj52G4qSVivEPrLfkCUVqmnCVH8TfsnER8/edit

ANDROID STUDIO 0.8.9 的ANDENGINE

注意:我正在使用 AnchorCenter 分支和 TortoiseGit 来获取所有文件。

  1. 使用 TortoiseGit 从 github 下载 Andengine:https://github.com/nicolasgramlich/AndEngine
  2. 下载后使用 TortoiseGit 切换到分支 GLES2-AnchorCenter
  3. 在 Android Studio 中创建新项目
  4. 创建新模块:
  5. 选择文件 -> 新建模块 -> Android 库
  6. 将应用程序名称设置为 AndEngine
  7. 将模块名称设置为 AndEngine
  8. 将包名称设置为 org.andengine
  9. 设置最低 SDK 14
  10. 目标 SDK 19
  11. 用 19 编译
  12. 主题无
  13. 继续单击下一步,直到创建模块(您选择的内容没有区别)
  14. 进入你下载Andengine的文件夹,进入src/org/andengine,复制里面的所有文件。
  15. 将复制的文件粘贴到项目 src/java/org.andengine 中的新模块中。粘贴所有内容后,删除默认创建的 MainActivity
  16. 进入你下载Andengine的文件夹,复制AndroidManifest并粘贴到你的新模块(src/main)
  17. 将模块添加到项目中:
  18. 选择文件->项目结构->应用程序->依赖项
  19. 点击“+”按钮并选择“Module Dependency”
  20. 从列表中选择您的 AndEngine 模块
  21. 在 app 文件夹 (build.gradle) 中检查您的项目 gradle,并确保在依赖项下有这样一行 - compile project(':AndEngine')

您现在应该可以在项目中使用 AndEngine

使用 ANDROID STUDIO 0.8.9 的 ANDENGINE TMX 平铺地图扩展

注意:我们以与 Andengine 相同的方式执行此操作,但我们更改了一些内容:

  1. 使用 TortoiseGit 从 github 下载 AndengineTMX:https://github.com/nicolasgramlich/AndEngineTMXTiledMapExtension
  2. 下载后使用 TortoiseGit 切换到分支 GLES2-AnchorCenter
  3. 在 Android Studio 中创建新项目
  4. 创建新模块:
  5. 选择文件 -> 新建模块 -> Android 库
  6. 将应用程序名称设置为 AndEngineTMXTiledMapExtension
  7. 将模块名称设置为 AndEngineTMXTiledMapExtension
  8. 将包名称设置为 org.andengine.extension.tmx
  9. 设置最低 SDK 14
  10. 目标 SDK 19
  11. 用 19 编译
  12. 主题无
  13. 继续单击下一步,直到创建模块(您选择的内容没有区别)
  14. 进入你下载AndengineTMX的文件夹,进入src/org/andengine/extension/tmx,复制里面的所有文件。
  15. 将复制的文件粘贴到项目 src/java/org.andengine.extension.tmx 中的新模块中。粘贴所有内容后,删除默认创建的 MainActivity
  16. 进入你下载AndengineTMX的文件夹,复制AndroidManifest并粘贴到你的新模块(src/main)
  17. 将模块添加到项目中:
  18. 选择文件->项目结构->应用程序->依赖项
  19. 点击“+”按钮并选择“Module Dependency”
  20. 从列表中选择您的 AndengineTMX 模块
  21. 检查应用文件夹 (build.gradle) 中的项目 gradle 并确保在依赖项下有这样一行 - compile project(':AndEngineTMXTiledMapExtension')

您现在应该可以在您的项目中使用 AndEngineTMXTiledMapExtension。

ANDENGINE PHYSICSBOX2D 与 ANDROID STUDIO 0.8.9

  1. 下载此文件 - http://d-h.st/FyC
  2. 解压文件
  3. 您应该有 2 个 jar 文件,将它们复制到您的项目 app/libs 中
  4. 右键单击andenginephysicsbox2dextension.jar并选择“添加为库”(或类似的东西)
  5. 在应用文件夹中打开 build.gradle
  6. 在依赖项下添加编译文件('lib/physicsbox2d_so_files.jar')

您现在应该可以在您的项目中使用 PhysicsBox2D。

【讨论】:

    【解决方案3】:

    由于问题的答案尚未被接受,而且我知道人们仍在寻找解决方案,因此我发现这个很棒的网站提供了非常清晰简洁的说明,可以将 AndEngine 导入您的 Android Studio 项目。这是链接:

    http://geq-i.blogspot.com/2014/02/how-to-setup-andengine-in-android-studio.html

    所有功劳归创建此页面的用户所有。我可以证明这是完美的。在尝试了 10 种不同的方式后,我才使用了这个网站。 链接上唯一需要注意的是最后一部分:

    $ cd <project folder>/AndEngine/src/main
    $ rm -r java/org
    $ mv org java
    

    这部分是将 org 文件夹从 . 复制到 ./main/java。最好的方法是在项目完成构建一次后将 org 文件夹拖放到 main/java 中。

    希望这会有所帮助!

    【讨论】:

      【解决方案4】:

      好吧,我遇到了同样的问题 - 这帮助我解决了它。 http://www.makethegame.net/android-andengine/how-to-setup-andengine-with-android-studio/

      【讨论】:

      • 这是最好的答案,如果有一个名为 import 的巨大菜单项严重无法理解之前答案中的原因,为什么还要自己复制 rsyncing 文件?
      【解决方案5】:

      查看本教程,了解如何在 android studio 中使用 andengine

      http://javaprogrammernotes.blogspot.in/2014/05/settings-up-andengine-in-android-studio.html

      教程的简要总结(如果您遇到任何问题,请查看完整的教程):

      假设您已经创建了一个项目并且它具有默认结构。首先在项目的根目录下创建名为third_party 的文件夹。然后在third_party 目录中创建名为andengine 和andenginebox2d 的子目录。我假设您已经为它下载或克隆了 AndEngine 和 Box2d 扩展。将 AndEngine 和 AndEngineBox2d 分别放在 andengine 和 andenginebox2d 目录下。在andengine目录和andenginebox2d目录下创建名为build.gradle的文件。 Build.gradle 文件是一个告诉 gradle 如何构建你的项目的文件。

      apply plugin: 'android-library'
      
      android {
      compileSdkVersion 17
      buildToolsVersion "19.0.3"
      
      defaultConfig {
          minSdkVersion 14
          targetSdkVersion 19
      }
      
      compileOptions {
          sourceCompatibility JavaVersion.VERSION_1_7
          targetCompatibility JavaVersion.VERSION_1_7
      }
      
      buildTypes {
          release {
              runProguard false
              proguardFiles getDefaultProguardFile('proguard-project.txt')
          }
      }
      
      sourceSets {
          main {
              manifest.srcFile 'AndroidManifest.xml'
              java.srcDirs = ['src']
              resources.srcDirs = ['src']
              res.srcDirs = ['res']
              assets.srcDirs = ['assets']
          }
      
          instrumentTest.setRoot('tests')
      }
      }
      
      dependencies {
          compile fileTree(dir: 'libs', include: ['*.jar'])
      }
      

      打开位于项目根目录中的 settings.gradle 并在其中添加两行:

      include ':third_party:andengine'
      include ':third_party:andenginebox2d'
      

      接下来打开app目录下的build.gradle并添加

      compile project(':third_party:andengine')
      

      最后一步是打开andegine和andenginebox2d目录下的AndroidManifest.xml,让它们看起来像这样:

      <!--?xml version="1.0" encoding="utf-8"?-->
      <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.andengine">
      
      <application>
      </application>
      </manifest>
      

      由于清单合并工具中的错误,需要应用程序块。 而已!现在清理您的项目并按运行。一切都应该正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-20
        相关资源
        最近更新 更多