cordova运行android执行正常.但Android 4.1.2无法启动应用程序

ger*_*ato 28 android command-line-interface android-emulator cordova

我开始使用Cordova 5.0.0开发Android应用程序(cordova -v打印5.0.0),并在带有Android 4.1.2的Moto Razr D1上进行测试.在Windows 7下,顺便说一句.

cordova build 
Run Code Online (Sandbox Code Playgroud)

并手动将平台/ android/build/output/apk/android-degug.apk复制到SD并安装工作正常.

cordova emulate android 
Run Code Online (Sandbox Code Playgroud)

在Android版本> 4.1.2的模拟器上运行正常

cordova run android 
Run Code Online (Sandbox Code Playgroud)

建立成功,说使用apk平台/ android/build/output/apk/android-debugger.apk,这似乎没问题,安装应用程序,启动和启动成功.但是你可以在这个截图中看到

Razr截图

这个"WALLPAPER/MANAGE/SETTINGS"的事情发生了,就是这样.

如果我执行:

cordova emulate android
Run Code Online (Sandbox Code Playgroud)

在Android 4.1.2 Jelly的模拟器上,输出相同

BUILD SUCCESSFUL

Total time: 6.352 secs
Built the following apk(s):
    C:\android\Some\platforms\android\build\outputs\apk\android-debug.apk
Installing app on emulator...
Using apk: C:\android\Some\platforms\android\build\outputs\apk\android-debug.apk
Launching application...
LAUNCH SUCCESS
Run Code Online (Sandbox Code Playgroud)

相同的"WALLPAPAER/MANAGE/SETTINGS",这是另一个截图模拟器截图

任何想法如何解决这个问题?提前致谢...

PS:如果我以前安装了apk,Razr将启动旧版本,而不是WALLPAPER/MANAGE/SETTINGS.所以我必须在尝试运行cordova run命令之前将其卸载.

pro*_*rit 44

我遇到了同样的问题(Cordova"你好世界"应用程序不会显示)并找到了通过它的方法(但我真的不明白其根本原因).

安装apk时似乎出现问题.在Cordova 5.0.0上,安装apk的adb命令可以在文件平台的第101行找到\ android\cordova\lib\device.js(以及在平台的第311行,用于cordova的平台\ android\cordova\lib\emulator.js)模仿android):

adb -s ' + resolvedTarget.target + ' install -r -d "' + apk_path + '"

当前命令返回给我:"错误:未知选项-d"!

如果你只是删除"-d"选项,应用程序正常运行与cordova运行android.

编辑

-d假设后直接来adb(在--device),而不是安装后.所以你可以把它移到那里而不是删除它.

另外,这是apache cordova问题跟踪器上已打开的问题


joj*_*ojo 11

如果你不知道,有几件事需要检查和注意:

  • 您的CLI版本cordova -v不一定与平台版本匹配cordova platform
  • 您在不同平台之间的平台版本(如果有的话)可能不匹配.例如,Android可能具有与iOS不同的平台版本.

如果你已经更新到科尔多瓦,Android SDK中的最新版本,请确保您通过阅读releasenotes.md:https://github.com/apache/cordova-android/blob/master/RELEASENOTES.md

我不确定SD是什么,但我已经安装了我的应用程序

adb install <path_to_apk>
Run Code Online (Sandbox Code Playgroud)

在将您上传的apk与您的设备进行比较和检查后,我相信比模拟器更容易调试,使用logcat启动Android Debug Bridge:

adb -d logcat
Run Code Online (Sandbox Code Playgroud)

如果您更喜欢使用logcat通过模拟器进行调试,那么:

adb -e logcat
Run Code Online (Sandbox Code Playgroud)

这里有额外的调试标志来减少冗长:http://developer.android.com/tools/debugging/debugging-log.html.您需要根据需要调整过滤规范,例如:adb logcat ActivityManager:I MyApp:D *:S.我更喜欢使用adb logcat *:D捕获几乎所有调试消息,但稍微减少了详细程度.

希望在连接和启动logcat后,您将能够捕获可能导致问题的错误.

编辑: 这是通过Chrome浏览器开发人员工具进行设备调试的另一种方法:https://developer.chrome.com/devtools/docs/remote-debugging

一般来说,以下是上述链接的步骤:

要求:Chrome 32或更高版本,USB线连接到Android设备,浏览器调试需要Android 4.0+,应用调试需要Android 4.4+

  1. 在设备上启用USB调试:设置>开发人员选项.如果您使用的是Android 4.2+设备,则默认情况下会隐藏开发人员选项.单击设置>关于手机,然后点击内置编号七次.
  2. 在"开发人员选项"中,选择USB调试复选框.
  3. 单击" 确定"以确认您正在打开USB调试.
  4. 使用USB电缆将设备连接到计算机.
  5. 打开Chrome浏览器并在搜索/地址栏中输入chrome:// inspect.
  6. 单击" 发现USB设备 "复选框.
  7. 在您的设备上,会出现警告提示.单击确定.
  8. 铬://检查页现在应该显示连接的设备.单击设备的"检查"链接.应该会显示Chrome开发者工具.

上面的远程调试链接中有关于实时屏幕截播,代理设置,端口转发和虚拟主机映射的更多信息.