在 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。 此处为 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 设备中仅显示白屏