Cordova does not actually install app on android d

2019-03-26 01:28发布

问题:

I've setup cordova 5.0.0 + android SDK API 22 ( Android 5.1.1 ) on ubuntu 12.04 to develop an app. When I run the command

cordova run --device

it builds without errors the APK and shows

Total time: 3.177 secs Built the following apk(s): /var/www/tmp/test-app/platforms/android/build/outputs/apk/android-release-unsigned.apk Using apk: /var/www/tmp/test-app/platforms/android/build/outputs/apk/android-release-unsigned.apk Installing app on device... Launching application... LAUNCH SUCCESS

which however does NOT actually installs the APK to the device.

I have tried to install the ready built APK file using

adb install -r /var/www/tmp/test-app/platforms/android/build/outputs/apk/android-release-unsigned.apk

and it worked.

I have tried to download the APK from a web-server and install it locally on the device and it also worked, so I assume the APK itself is ok and the device is recognized.

When the APK is already installed on the device the command

cordova run --device

produces the same output in the console plus it starts up the app on the device but does not install the newer version it just built.

my android device is an HTC Desire 500 running Android 4.1.2, while my Android SDK is using API 22 ( Android 5.1.1 ) could that be the problem ?

Final note: I have a setup on separate machine using cordova 4.1.2 setup with Android SDK API 19 and it builds the project well and actually DO install the app.

I would appreciate your input on what might cause this strange behavior.

Cheers

回答1:

Seems to be a bug in Cordova 5.0.0, I had the same problem and the answer by proprit in this thread solved it for me:

On Cordova 5.0.0, adb commands to install the apk can be found at line 101 of file platforms\android\cordova\lib\device.js (and at line 311 of platforms\android\cordova\lib\emulator.js for cordova emulate android):

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

Current command returns to me: "Error: unknown option -d"! If you simply delete the "-d" option, applications run normally with cordova run android.



回答2:

cordova build

adb push "<<project_path_here>>\platforms\android\build\outputs\apk\android-debug.apk" /sdcard/

adb shell pm install -r /sdcard/android-debug.apk

And then you can find your app in your phone and run it ;D



回答3:

cordova emulate android

works for the latest version as of this date.