当前位置: 首页 > 知识库问答 >
问题:

如何从命令行使用gradle创建android项目?

刁丰羽
2023-03-14

如何从命令行(没有任何IDE)创建带有分级的Android项目?

在使用androidutil之前,如下所示

android create project --target 1 --name MyAndroidApp --path ./MyAndroidAppProject --activity MyAndroidAppActivity --package com.example.myandroid

共有3个答案

封永嘉
2023-03-14

下面是PHP Android CLI的解决方案

只需运行:

phpandroid create HelloWorld com.example.helloworld

并且您的项目被最新的Android Studio参数的脚手架所束缚,例如编译

如果你想改变,比如,想把明斯克设为14:

phpandroid create PROJECT PACKAGE --minSdk=14

PHP Android CLI还可以创建变体和模块(应用程序/库):

phpandroid create PROJECT PACKAGE --modules=common:library,admin --variants=free:type,paid:type,php:backend,firebase:backend

这将生成2个应用程序,< code>app,< code>admin

刘曾琪
2023-03-14

android create project在SDK工具26.0.1中被删除

更多详情见https://askubuntu.com/questions/906942/android-update-project-path-target-android-25-on-ubuntu-16-04

尝试使用它失败,原因是:

*************************************************************************
The "android" command is deprecated.
For manual SDK, AVD, and project management, please use Android Studio.
For command-line tools, use tools/bin/sdkmanager and tools/bin/avdmanager
*************************************************************************
Invalid or unsupported command "project create"

Supported commands are:
android list target
android list avd
android list device
android create avd
android move avd
android delete avd
android list sdk
android update sdk

解决方法:Android Studio模板复制助手脚本

我最好的解决方法是:

  • 从Android Studio GUI手动创建一个新的Gradle项目
  • 使用辅助脚本复制该模板,在进程中重命名类

以下助手脚本允许您执行以下操作:

./template NewAppName AppTemplateProject

要从使用Android studio创建的现有< code>AppTemplateProject获取新应用程序< code>NewAppName,请执行以下操作:

#!/usr/bin/env bash
set -ex
new="$1"
shift
if [ $# -gt 0 ]; then
  old="$1"
  shift
else
  old='Min'
fi
old="$(echo "$old" | sed -E 's/\/$//')"
new="$(echo "$new" | sed -E 's/\/$//')"
new_lower="$(echo "$new" | tr 'A-Z' 'a-z')"
old_lower="$(echo "$old" | tr 'A-Z' 'a-z')"
cp -r "$old" "$new"
cd "$new"
find . -type f -print0 | xargs -0 sed -i "s/${old}/${new}/g"
find . -type f -print0 | xargs -0 sed -i "s/${old_lower}/${new_lower}/g"
cd 'app/src/main/java/com/cirosantilli/android_cheat'

GitHub上游:https://github.com/cirosantilli/android-cheat/blob/0e6b7462705179658b48d0e2e27f0dbce308393c/gradle/template

是的,它并不完美。但CLI支持似乎仅次于Google,因此您可以做什么:-(

林劲
2023-03-14

类似于如何创建Javagradle项目建议创建Android项目与android创建项目比添加build.gradle经典Android项目的模板ghc/N/n-1/b/m/o. n. e. g/docs/android/build.gradle.(这将允许在任何IDE中开发,因为旧的结构被更广泛地采用)

当然,将来会有一些渐变初始化选项或机器人创建(来自SDK)。

Android SDK 19具有< code > Android CLI < code >-g 选项,允许使用梯度模板。您可能还需要使用CLI -v选项指定android gradle插件版本,请查看android gradle插件兼容性表。创建使用android gradle插件(v 0.10)添加gradle支持的项目的示例命令。

android create project \
    --gradle \
    --gradle-version 0.10 \
    --activity Main \
    --package com.example.app \
    --target android-19 \
    --path AppWithGradleTemplate

或者对于buildTools 19.1,通过< code> - gradle-version使用较新版本的Gradle Android插件:

android create project \
    --gradle \
    --gradle-version 0.11.+ \
    --activity Main \
    --package com.example.app \
    --target android-25 \
    --path AppWithGradleTemplate

查看android创建项目-h以获取帮助

然而,Android Studio 0.6.1无法正确打开它(没有显示源代码),因为它将第一个项目文件夹(即< code>gradle)作为模块文件夹-

在Eclipse中,它使用了一个技巧,将src文件夹视为项目的根目录。

. classpath

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="java"/><!--ADJUSTED HERE -->
    <classpathentry kind="src" path="gen"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
    <classpathentry kind="output" path="bin/classes"/>
</classpath>

建立渐变

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.10.+'
    }
}
apply plugin: 'android'

android {
   //{ for Android Gradle as Eclipse project
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['java']
            resources.srcDirs = ['java']
            aidl.srcDirs = ['java']
            renderscript.srcDirs = ['java']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        androidTest.setRoot('../tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
    //}
    compileSdkVersion 'Google Inc.:Google APIs:10'
    buildToolsVersion '19.0.3'

    buildTypes {
        release {
            runProguard false
            proguardFile getDefaultProguardFile('proguard-android.txt')
        }
    }
    lintOptions {
        abortOnError false
    }
}

http://marketplace.eclipse.org/content/gradle

http://www.nodeclipse.org/projects/gradle/阅读

 类似资料:
  • 我试图从命令行创建一个Android项目。 我在以下链接中尝试了它: 如何从命令行使用gradle创建android项目? 但我得到了: 所以,我认为这不是一个选项。 在弃用消息中,他们说: 但我没有找到实现这一目标的方法。 我想在命令行上指定以下参数(除其他外): 分级是一种选择吗?

  • 我有以下文件: 我运行以下命令: 但它什么也没做。依赖项不会得到更新,也不会反映在类路径上。命令的输出为: 不过,通过EclipseGradle插件实现这一点是可行的。

  • 我只想使用命令行工具创建一个新的虚拟Android设备。我想创建一个虚拟像素。 我能够创建一个新的AVD,但不幸的是,我不知道如何正确设置皮肤和正确的设备屏幕分辨率。 这是我到目前为止尝试过的: < code > C:\ Users \ * * * * * * * \ AppData \ Local \ Android \ Sdk \ tools 当我通过运行AVD时,我看到一个低分辨率设备,没有

  • 用了这里提到的步骤 使用的命令行: 执行目标org.apache.maven.plugins失败:maven-arch etype-plugin:3.1.2:在项目练习中生成(default-cli)一:执行目标org.apache.maven.pluginsdefault-cli:maven-arch etype-plugin:3.1.2:生成失败:执行org.apache.maven.plug

  • 本章介绍了命令行的一些基本功能.正如在前面的章节里你所见到的调用 gradle 命令来运行一个构建.

  • 问题内容: 我正在尝试使用gradle通过以下命令运行测试,但无法正常工作 我的测试套件如下所示 尝试运行以下命令的方法有效,但更糟糕的是,它每次运行两次测试。一次,然后再次在相同名称空间的测试套件下 我可以删除测试套件并以这种方式进行操作,但是我想更好地了解这里发生了什么以及为什么我不能告诉它直接运行测试套件。 问题答案: 以下为我在本地工作。 与所使用的更高级的过滤方法相比,这实际上使用了不同