一例 Android Studio 无法生成 APK 的问题定位过程

关键词 keywords: Android Studio apkgenerateddx.bat

o 问题描述新下载的含SDK的安装包:android-studio-bundle-135.1629389.exe安装之后新建工程,Make Project 提示 BUILD SUCCESSFUL 但 Run 失败,运行assembleDebug(即生成apk)失败。o 定位过程在工程目录看了下,class文件都生成了,app\build\outputs\apk下面没有生成apk查看Gradle Console,,有提示信息:Execution failed for task ':app:dexDebug'.> com.android.ide.common.internal.LoggedErrorException: Failed to run command:D:\android\sdk\android-sdk\build-tools\21.1.1\dx.bat -dex –output E:\as\ASApp\app\build\intermediates\pre-dexed\debug\classes-ed0fb125acd411038ae53dc376b5fe565edb34d3.jar E:\as\ASApp\app\build\intermediates\exploded-aar\com.android.support\support-v4\21.0.2\classes.jarError Code:1Output:系统找不到指定的路径。这个命令应该是调用dx.bat将classes.jar转成dex,于是先看classes.jar是否存在,存在,再看输出目录是否存在,也存在,再看dx.bat路径是否有问题,也没有问题。那只能跟到dx.bat里面看看。打开一大段注释,大概第26行开始干正事了——找java.exe。难道java路径有问题,加个打印先:if exist "%~dp0..\..\tools\lib\find_java.bat" call "%~dp0..\..\tools\lib\find_java.bat"echo java_exe=%java_exe%if not defined java_exe goto :EOF再运行dx.bat结果:java_exe=-v / -version: Only prints the Java version found.系统找不到指定的路径。果然java路径有问题,再跟到find_java.bat里面看看。在第31行后面加打印:for /f "delims=" %%a in ('"%~dps0\find_java%arch_ext%.exe" -s') do set java_exe=%%aecho '"%~dps0\find_java%arch_ext%.exe" -s'if not defined java_exe goto :CheckFailed<pre name="code" class="plain">再运行dx.bat结果:'"D:\android\sdk\ANDROI~1\tools\lib\\find_java32 .exe" -s -w'看到没," .exe"前面多了一个空格,往前面翻第26、27行:reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" |^find /i "x86" > NUL && set arch_ext=32 || set arch_ext=64

发现给变量arch_ext赋值"32"时多了一个空格。

o 解决方案

将find_java.bat第27行改为:

find /i "x86" > NUL && set arch_ext=32|| set arch_ext=64再运行assembleDebug,生成apk成功。

烦恼忧愁不用追,吃点好的别嫌贵,

一例 Android Studio 无法生成 APK 的问题定位过程

相关文章:

你感兴趣的文章:

标签云: