当我运行命令
ionic cordova run android
构建成功,但应用程序无法在我的android设备上运行。
错误日志为:
BUILD SUCCESSFUL in 4m 7s
47 actionable tasks: 45 executed, 2 up-to-date
Built the following apk(s):
ANDROID_HOME=C:\Users\AppData\Local\Android\sdk
JAVA_HOME=C:\Program Files\java\jdk1.8.0_121
No target specified, deploying to device 'UGM0217321003049'.
Skipping build...
Built the following apk(s):
Error: Could not find apk architecture: arm build-type: debug
[ERROR] An error occurred while running subprocess cordova.
cordova run android exited with exit code 1.
Re-running this command with the --verbose flag may provide more information.
在目录platforms/android/build/outputs/apk
下,只有一个名为debug的文件夹,在该文件夹下有两个文件android-debug.apk
和output.json
。
apk
|---debug
|---android-debug.apk
|---output.json
我怀疑apk目录中应该有一些arm体系结构文件,但是我不知道如何生成它。
您能帮我解决此运行android错误吗?
答案 0 :(得分:1)
为避免在评论中进行进一步的讨论,让我总结一下解决方法,如下所示:
尝试首先运行以下命令来构建apk。
cordova build android
platforms\android
中查找apk并手动安装。 如何在应用文件夹中自动构建
android-debug.apk
?
.json
文件是自动生成的,通常不需要触摸它。
默认情况下,apk路径位于app/build/outputs/apk
下,您可以根据需要将其复制到自定义位置,对于您的情况,它可能是app/
根目录。您可以通过多种方式执行此操作,例如bash脚本。在gradle代码片段下面是我如何执行此任务的方法,只需将下面的代码复制到app/build.gradle
的末尾:
def capitalizeFirstLetter(s) { s[0].toUpperCase() + s[1..-1] }
def publish = project.tasks.create("copyApks")
publish.description "Copies apks to custom directory"
android.applicationVariants.all { variant ->
def customPath
variant.outputs.all {
customPath = "$projectDir"
def capitalizedVariantName = capitalizeFirstLetter(variant.name)
def task = project.tasks.create("copy${capitalizedVariantName}Apk", Copy)
task.from(outputFile)
task.into(customPath)
task.dependsOn variant.assemble
publish.dependsOn task
}
}
从命令行分别在macOS或Windows上运行./gradlew copyApks
或gradlew copyApks
。
然后,您会发现自己的APK在app\
目录下。