Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用命令行生成apk文件?_Android_Eclipse_Command Line_Apk_Command Prompt - Fatal编程技术网

Android 如何使用命令行生成apk文件?

Android 如何使用命令行生成apk文件?,android,eclipse,command-line,apk,command-prompt,Android,Eclipse,Command Line,Apk,Command Prompt,请告诉我如何在不使用EclipseIDE的情况下构建项目的apk文件。我找到了一些关于使用批处理文件的信息,但我不知道如何重新制作它 echo on SET PREV_PATH=%CD% cd /d %0\.. REM Clear bin folder rmdir "bin" /S /Q rmdir "gen" /S /Q mkdir "bin" || goto EXIT mkdir "gen" || goto EXIT REM Set your application name SET

请告诉我如何在不使用EclipseIDE的情况下构建项目的apk文件。我找到了一些关于使用批处理文件的信息,但我不知道如何重新制作它

echo on

SET PREV_PATH=%CD%
cd /d %0\..

REM Clear bin folder
rmdir "bin" /S /Q
rmdir "gen" /S /Q
mkdir "bin" || goto EXIT
mkdir "gen" || goto EXIT

REM Set your application name
SET APP_NAME=SecureSms

REM Define minimal Android revision
SET ANDROID_REV=android-8

REM Define aapt add command
SET ANDROID_AAPT_ADD="%ANDROID-SDK%\platforms\%ANDROID_REV%\tools\aapt.exe" add

REM Define aapt pack and generate resources command
SET ANDROID_AAPT_PACK="%ANDROID-SDK%\platforms\%ANDROID_REV%\tools\aapt.exe" package -v -f -I "%ANDROID-SDK%\platforms\%ANDROID_REV%\android.jar"

REM Define class file generator command
SET ANDROID_DX="%ANDROID-SDK%\platform-tools\dx.bat" --dex

REM Define Java compiler command
SET JAVAC="%JAVABIN%\javac.exe" -classpath "%ANDROID-SDK%\platforms\%ANDROID_REV%\android.jar"
SET JAVAC_BUILD=%JAVAC% -sourcepath "src;gen" -d "bin"

REM Generate R class and pack resources and assets into resources.ap_ file
call %ANDROID_AAPT_PACK% -M "AndroidManifest.xml" -A "assets" -S "res" -m -J "gen" -F "bin\resources.ap_" || goto EXIT

REM Compile sources. All *.class files will be put into the bin folder
call %JAVAC_BUILD% src\org\secure\sms\*.java || goto EXIT

REM Generate dex files with compiled Java classes
call %ANDROID_DX% --output="%CD%\bin\classes.dex" %CD%\bin || goto EXIT

REM Recources file need to be copied. This is needed for signing.
copy "%CD%\bin\resources.ap_" "%CD%\bin\%APP_NAME%.ap_" || goto EXIT

REM Add generated classes.dex file into application package
call %ANDROID_AAPT_ADD% "%CD%\bin\%APP_NAME%.ap_" "%CD%\bin\classes.dex" || goto EXIT

REM Create signed Android application from *.ap_ file. Output and Input files must be different.
call "%JAVABIN%\jarsigner" -keystore "%CD%\keystore\my-release-key.keystore" -storepass "password" -keypass "password" -signedjar "%CD%\bin\%APP_NAME%.apk" "%CD%\bin\%APP_NAME%.ap_" "alias_name" || goto EXIT

REM Delete temp file
del "bin\%APP_NAME%.ap_"

:EXIT
cd "%PREV_PATH%"
ENDLOCAL
exit /b %ERRORLEVEL%
我从一个网站上得到这个密码。(http://www.apriorit.com/our-company/dev-blog/233-how-to-build-apk-file-from-command-line)


我下载了源代码示例并在其中打开了批处理文件,但它没有生成apk文件。通常apk文件位于其bin中\n对吗?但是当我打开文件夹时,文件不在那里。请帮我怎么用这个。非常感谢您的帮助。

您必须使用Apache ant来完成此任务:

ant debug
这将生成并签署必要的
.apk
文件

有关更多信息,请参见:

编辑:

ant不是标准Android SDK设置的一部分。你必须安装它

从下载最新的ant zip文件


完成这些操作后,您将能够从命令行运行ant,默认情况下,apk位于bin下,这是正确的,但在分发源代码时,最好不要添加任何apk,因为“新”编译的apk总是更好的解决方案

如果在项目的根目录中有一个名为
build.xml
的文件,只需执行以下操作

ant debug
否则,您需要使用构建阶段所需的最低信息更新项目

android update project -t android-10 -p .
在这种情况下,
android-10
是您的apk/app/api的目标,您可以为您的目标设备自定义此选项

在此之后,您将获得
build.xml
,并且所有生成apk的内容都准备就绪

ant debug install
如果使用创建项目,则实际上是可行的(请注意,如果正在运行多个设备,则在安装时应使用“adb-s”命令指定虚拟设备)

(如果在设备上运行,请将-e选项更改为-d)


如果您不知道这些命令或参数,最好使用“AVD Manager.exe”来启动虚拟设备,因为其中有很多。我在互联网上找到的创建Android APK的最佳示例之一是。如果您使用gradle,还可以在根目录中使用assembleDebug命令(确保将gradle设置为环境变量)

我将把ant调试程序放在哪里?对不起,我对android编程很在行。我只是想在不使用emulator的情况下构建apk文件,这样系统管理员就可以打开可执行文件或批处理文件来创建apk文件并将其分发给用户。@sam这两个命令都是用于项目的根目录,您需要打开一个终端来输入它们。因此,仅打开一个批处理文件是不可能的创建apk文件?执行批处理文件后,我必须从ant手动键入android更新?@sam
android update…
ant debug
是两个不同的命令。我假设您使用的是Windows,在Windows下,您可以创建一个批处理文件,只执行
android update…
,然后执行
ant debug
或任何您希望在批处理中执行的命令。我要将该行放入批处理文件中吗?不,您必须在提示符中写入它。我不会说它不可能与批处理,但尝试它的提示本身。直接在提示符下写入和写入批处理文件将完成相同的工作。请看我的编辑。我需要将目录更改为“c:\ant”,然后键入
ant debug
然后
android更新项目-t android-10-p
您不必更改pwd,如果您没有将ant路径添加到环境变量中,那么您需要一次又一次地编写整个“ant路径”。您可以尝试Axis所说的,或者只有“ant debug”也可以工作
ant debug install
android create project -n <project_name>
        -t <target_version> -p <path> -k <package> -a <activity>
adb -e shell "am start -a android.intent.action.MAIN -n com.your.package/.YourActivity"