Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.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 ';apkanalyzer';不被识别为内部或外部命令_Android_Apk_Adb_Command Line Tool - Fatal编程技术网

Android ';apkanalyzer';不被识别为内部或外部命令

Android ';apkanalyzer';不被识别为内部或外部命令,android,apk,adb,command-line-tool,Android,Apk,Adb,Command Line Tool,我经常将我的新构建apk大小与生产构建进行比较,我正在寻找自动化此活动的选项,以便它比较新的和生产apk大小,并向我报告。 我知道Android Studio的APK Analyzer,但我想使用命令行工具来实现这一点。这列出了apkanalyzer的用法,但在运行此命令时 apkanalyzer -h apk file-size myapk.apk 它说“'apkanalyzer'不被识别为内部或外部命令、可操作程序或批处理文件”,尽管我已经将环境路径设置为\Android\sdk\tool

我经常将我的新构建apk大小与生产构建进行比较,我正在寻找自动化此活动的选项,以便它比较新的和生产apk大小,并向我报告。 我知道Android Studio的APK Analyzer,但我想使用命令行工具来实现这一点。这列出了apkanalyzer的用法,但在运行此命令时

apkanalyzer -h apk file-size myapk.apk
它说“'apkanalyzer'不被识别为内部或外部命令、可操作程序或批处理文件”,尽管我已经将环境路径设置为\Android\sdk\tools\bin

不知道为什么命令行不能识别这个命令,您能告诉我哪里可能出错,或者有没有其他方法可以使用命令行检查apk文件大小


感谢您的帮助。

这意味着您的SDK路径中不存在
apkanalyzer

要下载它,只需转到SDK管理器并单击Android SDK工具,然后单击确定继续并下载缺少的工具

android studio中提供了APK Analyzer工具

大多数命令可执行选项只能与Android Studio中的良好UI一起使用。

安装在windows 10 pc上的my sdk>tools>bin中的apkanalyzer文件(没有扩展名)是一个Unix Shell脚本。 Windows无法将此文件识别为有效命令


这似乎是windows安装的Android SDK Tools 26.1.1中的一个bug。

正如其他人所提到的,请确保您已通过SDK管理器安装了Android SDK Tools。它们应该显示在
/tools/bin
中。很久以前,我在我的~/.bash_配置文件中将
/tools
添加到我的
$PATH
,但从未添加
/tools/bin
;显然,我没有注意到,到目前为止,工具已经被弃用,或者被转移到其他地方

也见
有关常规工具、构建、平台和模拟器工具的详细信息。

apkanalyzer
是unix shell脚本,这里是用于windows的转换批处理脚本,请确保更改
APP_HOME
CLASSPATH
,以匹配您的设置。将其另存为apkanalyzer.cmd

@echo off

::##############################################################################
::##
::##  apkanalyzer start up script for Windows
::##
::##  converted by ewwink
::##
::##############################################################################

::Attempt to set APP_HOME

SET SAVED=%cd%
SET APP_HOME=C:\android\sdk\tools
SET APP_NAME="apkanalyzer"

::Add default JVM options here. You can also use JAVA_OPTS and APKANALYZER_OPTS to pass JVM options to this script.
SET DEFAULT_JVM_OPTS=-Dcom.android.sdklib.toolsdir=%APP_HOME%

SET CLASSPATH=%APP_HOME%\lib\dvlib-26.0.0-dev.jar;%APP_HOME%\lib\util-2.2.1.jar;%APP_HOME%\lib\jimfs-1.1.jar;%APP_HOME%\lib\annotations-13.0.jar;%APP_HOME%\lib\ddmlib-26.0.0-dev.jar;%APP_HOME%\lib\repository-26.0.0-dev.jar;%APP_HOME%\lib\sdk-common-26.0.0-dev.jar;%APP_HOME%\lib\kotlin-stdlib-1.1.3-2.jar;%APP_HOME%\lib\protobuf-java-3.0.0.jar;%APP_HOME%\lib\apkanalyzer-cli.jar;%APP_HOME%\lib\gson-2.3.jar;%APP_HOME%\lib\httpcore-4.2.5.jar;%APP_HOME%\lib\dexlib2-2.2.1.jar;%APP_HOME%\lib\commons-compress-1.12.jar;%APP_HOME%\lib\generator.jar;%APP_HOME%\lib\error_prone_annotations-2.0.18.jar;%APP_HOME%\lib\commons-codec-1.6.jar;%APP_HOME%\lib\kxml2-2.3.0.jar;%APP_HOME%\lib\httpmime-4.1.jar;%APP_HOME%\lib\annotations-12.0.jar;%APP_HOME%\lib\bcpkix-jdk15on-1.56.jar;%APP_HOME%\lib\jsr305-3.0.0.jar;%APP_HOME%\lib\explainer.jar;%APP_HOME%\lib\builder-model-3.0.0-dev.jar;%APP_HOME%\lib\baksmali-2.2.1.jar;%APP_HOME%\lib\j2objc-annotations-1.1.jar;%APP_HOME%\lib\layoutlib-api-26.0.0-dev.jar;%APP_HOME%\lib\jcommander-1.64.jar;%APP_HOME%\lib\commons-logging-1.1.1.jar;%APP_HOME%\lib\annotations-26.0.0-dev.jar;%APP_HOME%\lib\builder-test-api-3.0.0-dev.jar;%APP_HOME%\lib\animal-sniffer-annotations-1.14.jar;%APP_HOME%\lib\bcprov-jdk15on-1.56.jar;%APP_HOME%\lib\httpclient-4.2.6.jar;%APP_HOME%\lib\common-26.0.0-dev.jar;%APP_HOME%\lib\jopt-simple-4.9.jar;%APP_HOME%\lib\sdklib-26.0.0-dev.jar;%APP_HOME%\lib\apkanalyzer.jar;%APP_HOME%\lib\shared.jar;%APP_HOME%\lib\binary-resources.jar;%APP_HOME%\lib\guava-22.0.jar

SET APP_ARGS=%*
::Collect all arguments for the java command, following the shell quoting and substitution rules
SET APKANALYZER_OPTS=%DEFAULT_JVM_OPTS% -classpath %CLASSPATH% com.android.tools.apk.analyzer.ApkAnalyzerCli %APP_ARGS%

::Determine the Java command to use to start the JVM.
SET JAVACMD="java"
where %JAVACMD% >nul 2>nul
if %errorlevel%==1 (
  echo ERROR: 'java' command could be found in your PATH.
  echo Please set the 'java' variable in your environment to match the
  echo location of your Java installation.
  echo.
  exit /b 0
)

:: execute apkanalyzer

%JAVACMD% %APKANALYZER_OPTS%

我已经向谷歌提交了一份bug报告:


显然,它在Windows上已损坏。

我确保了sdk/tools/bin中存在apkanalyzer,并且sdk工具也已更新,但问题仍然存在。在bin文件夹中,未找到builder test api jar。我在网上找到并添加了jar。仍然给出错误:java.lang.NoSuchMethodError:com.android.sdklib.BuildToolInfo.fromLocalPackage你救了我的命!