在 Android 设备上运行 phonegap 应用程序

Posted

技术标签:

【中文标题】在 Android 设备上运行 phonegap 应用程序【英文标题】:Run phonegap application on Android device 【发布时间】:2015-03-12 16:26:17 【问题描述】:

对不起,如果这个问题含糊不清。

当我尝试将我的 Phonegapp 应用程序放到 android 设备上进行测试时,它不起作用。

它在 ios 上运行良好。

我已经搜索了网络,但建议的所有内容都不适用于我的问题。

我正在运行命令:

adb devices

这会返回:

List of devices attached 
BX90374LPY  device

然后我正在跑步:

phonegap run android --device=BX90374LPY

这会导致:

Unknown platforms: BX90374LPY

如果我跑:

phonegap run android --device

我明白了:

[phonegap] executing 'cordova run android --device'
[phonegap] completed 'cordova run android --device'

但我的设备上没有任何反应。

我做错了什么或错过了什么?

提前谢谢你。

编辑/更新

我的 ANDROID_HOME 的 $PATH 变量似乎有问题

这是为我解决的问题:

打开你的 bash 个人资料:

open -e .bash_profile

然后在文件打开时将其添加到文件中:

export ANDROID_HOME=/usr/local/Cellar/android-sdk/24.1.2
export PATH=$ANDROID_HOME/tools:$PATH

保存此文件,然后重新启动终端。工作完成。

【问题讨论】:

如果adb devices 上仅列出了一台设备,请尝试仅使用phonegap run android。如果它也不起作用,请在您的项目文件夹中搜索一个 APK 文件,然后使用adb install -r yourapp.apk将其安装到您的设备上 你的手机设置了USB调试吗? @SubjectiveEffect 是的,我已经完成了。 您还允许安装未知来源的应用程序吗? @QuickFix 我有。我认为这可能是 $PATH 问题 【参考方案1】:

尝试使用phonegap run android --verbose,它应该会为您提供有关问题的更多详细信息。

【讨论】:

我得到这个:BUILD FAILED /usr/local/Cellar/android-sdk/24.1.2/tools/ant/build.xml:601:执行此行时出现以下错误:/ usr/local/Cellar/android-sdk/24.1.2/tools/ant/build.xml:653:执行此行时出现以下错误:/usr/local/Cellar/android-sdk/24.1.2/tools/ ant/build.xml:698: null 返回:1【参考方案2】:

经过大量环顾后,这里解决了我的问题:

我的$PATH 变量ANDROID_HOME 似乎有问题

这是为我解决的问题:

打开你的 bash 个人资料:

open -e .bash_profile

然后在文件打开时将其添加到文件中:

export ANDROID_HOME=/usr/local/Cellar/android-sdk/24.1.2
export PATH=$ANDROID_HOME/tools:$PATH

【讨论】:

【参考方案3】:

我发现错误使用:

$ phonegap run android --verbose --stacktrace

* What went wrong: Execution failed for task ':processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 7 cannot be smaller than version 10 declared in library D:\MilleniumTech\platforms\android\build\intermediates \exploded-aar\android\CordovaLib\unspecified\debug\AndroidManifest.xml
        Suggestion: use tools:overrideLibrary="org.apache.cordova" to force usage

【讨论】:

嗨,乔纳森。你知道如何解决吗?谢谢 当我运行phonegap run android --verbose --stacktrace 时,我没有收到您提供的错误。相反,我得到ERROR running one or more of the platforms: CordovaError: The provided path "/Users/*/Google Drive/Websites/angular-phonegap/platforms/android" is not an Android project. You may not have the required environment or OS to run this project 您是否尝试删除平台文件夹? 我为什么要这样做?如果您的意思是platform remove,那么用platform add 重新添加它是的,我做到了。没有帮助,很遗憾。还有其他想法吗? 解决方案是编辑项目根目录下的 config.xml 文件。将以下行中的 7 更改为 10。 【参考方案4】:

此处为 Windows 7 上的 PhoneGap 5.0.0-0.28.1。

我尝试运行adb install -r myapp.apk 并成功安装了该应用程序,因此我进一步调查并发现必须在节点脚本platforms\android\cordova\lib\device.js 中修复一行。这一行:

var cmd = 'adb -s ' + resolvedTarget.target + ' install -r -d "' + apk_path + '"';

应该改为:

var cmd = 'adb -s ' + resolvedTarget.target + ' install -rd "' + apk_path + '"';

或可选(因为-d 选项在某些平台上不起作用):

var cmd = 'adb -s ' + resolvedTarget.target + ' install -r "' + apk_path + '"';

您可以自己检查cmd 变量的值,如果您在上述行下方添加一行console.log(cmd);,然后运行phonegap run android --verbose(使用--verbose 选项)以查看输出.如果您在命令提示符下执行cmd(例如adb -s ...)并且它不会输出Success 消息,我会知道它需要修复。

【讨论】:

【参考方案5】:

您的手机是否有有效的SSL 连接

如果您没有有效的此连接,则您的计算机没有所需的驱动程序。请检查驱动程序。

【讨论】:

以上是关于在 Android 设备上运行 phonegap 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Android phonegap 应用程序在三星 Galaxy 设备上存在 SQlite 和本地存储问题

PhoneGap 应用程序 - JSONP 请求发生在浏览器中,但不在设备上(Android)

PhoneGap 应用程序在 android 设备中仅显示白屏

Phonegap:解析不在 ios 或 android 上初始化

Android 设备上的 PhoneGap 蓝牙插件

并行 PhoneGap 开发 - 适用于 iPhone 和 Android 的应用程序