从命令行重新初始化并构建Android项目?

时间:2015-07-23 12:13:05

标签: android linux command-line

我之前只在Linux机器上成功构建了一个Android项目;为此,我下载了Android SDK并最终使用gradlew来构建它,这很好。

现在,我得到了一个包含Android项目源代码的zip;但是,由于我没有这方面的经验,我不知道这个项目是做什么的,也不知道它是如何构建的。目录结构如下所示:

.
├── AndroidManifest.xml
├── assets
├── bin
│   ├── AndroidManifest.xml
│   ├── classes
│   │   └── com # ... .class files here
...
│   ├── jarlist.cache
│   └── res
├── gen
│   └── com     # ... BuildConfig.java here
...
│   └── android-support-v4.jar
├── lint.xml
├── proguard-project.txt
├── project.properties
├── res
│   ├── drawable       # ... .png files here
...
│   ├── drawable-hdpi  # many similar dirs, launcher.png file
...
│   ├── layout         # main.xml and other .xml files
...
│   ├── raw            # some .json files here
...
│   ├── values         # also values-v11, values-v14 dirs; has styles.xml
...
└── src
    └── com            # .java source files here
...

我在此目录中尝试了How/when to generate Gradle wrapper files?(即gradlew wrappergradlew init),但即使生成了特定于gradle的文件,我也无法构建 - 因为我无法运行gradlew assemblegradlew build,因为我得到“Task 'assemble' not found in root project”。

找到Build Android project on command line on OSX: Task 'assembleDebug' not found in root project之后,我想也许它必须用ant编译,但是失败了“Buildfile: build.xml does not exist!”(实际上,这样的文件不存在)。

从我读到的内容来看,我想应该下载Android Studio并尝试在那里打开项目 - 但我宁愿不下载/学习/使用另一个IDE(我使用独立的文本编辑器而不是使用,比方说,Eclipse),宁愿通过命令行完成这项工作。

那么我怎么能“重新初始化”这个项目,所以我可以在Linux上使用命令行工具(gradleant来构建它,不过我想gradle是首选,显然antnot currently supported by Android team)?

1 个答案:

答案 0 :(得分:0)

好的,我发现这个项目实际上有一个隐藏文件,.project,例如:

<buildCommand>
  <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
  <arguments>
  </arguments>
</buildCommand>

...这意味着这是使用带有ADT插件(http://developer.android.com/sdk/installing/installing-adt.html)的Eclipse构建的,现在已停止支持Android Studio(Migrating to Android Studio | Android Developers)。

知道了这一点,然后我发现了How to create build.xml for an Android project?ant command does not generating apk file,我从那里尝试了命令:

/path/to/sdk/tools/android update project -p $PWD

...最终确实创建了build.xml系统使用的ant - 它似乎通过了(但由于未解析的库依赖关系,构建本身失败了,这是一个不同的主题)。

似乎没有简单的方法可以将基于ant的项目从命令行转换为gradle项目 - 甚至通过Android Studio的迁移路径也可能需要手动更改。 / p>