在安卓设备上运行PhoneGap应用程序

3
抱歉,如果我的问题不够明确。
当我尝试将我的Phonegapp应用程序放到Android设备上进行测试时,它无法正常工作。
在iOS上它运行良好。
我已经搜索了网络,但所有建议都无法解决我的问题。
我正在运行以下命令:
adb设备
这会返回:
List of devices attached 
BX90374LPY  device

我接着运行:

phonegap run android --device=BX90374LPY

这将导致:
Unknown platforms: BX90374LPY

如果我运行:

phonegap run android --device

I get:

[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命令将其安装到设备上。 - walljam7
你的手机上设置了USB调试吗? - Subjective Effect
@SubjectiveEffect 是的,我已经完成了。 - Alan
你是否也允许从未知来源安装应用程序? - QuickFix
@QuickFix 我有这个问题。我觉得可能是$PATH的问题。 - Alan
cordova build android 可以工作吗?(如果您在构建时遇到路径问题,应该是在构建时而不是运行时) - QuickFix
5个回答

7
尝试使用phonegap run android --verbose命令,它会给出更多关于问题的详细信息。

我得到了这个:构建失败 /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 - Alan

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

2
我使用以下命令找到错误:

$ 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

嗨,乔纳森。你知道怎么修复它吗?谢谢。 - Alan
当我运行 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 - Alan
为什么我要这样做?如果你的意思是使用 platform remove 然后再用 platform add 添加,是的,我已经这样做了。可惜没有帮助。还有其他的想法吗? - Alan
请尝试删除此文件夹并重试。当您执行 phonegap run android 时,它会再次创建。 - Jonathan Simon Prates
2
解决方案是编辑项目根目录下的config.xml文件。将以下行中的7更改为10。<preference name="android-minSdkVersion" value="7" /> - benevolentprof
显示剩余2条评论

1

我正在使用 Windows 7 上的 PhoneGap 5.0.0-0.28.1。

我尝试运行命令adb install -r myapp.apk,并成功安装了应用程序,因此我进一步调查发现需要在 Node 脚本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 + '"';

如果你在上述行下添加一行代码,例如console.log(cmd);,然后运行phonegap run android --verbose(使用--verbose选项)以查看输出,你可以自己检查cmd变量的值。如果你在命令提示符处执行它(例如adb -s ...),它不会输出Success消息,那么我就知道需要修复cmd。请注意保留html标签。

0

你的手机是否具有有效的SSL连接

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接