Ionic run android seems to work, but the app is no

2019-02-21 19:17发布

问题:

My phone is on and in debug-mode I have confirmed this with adb devices -l. When I run ionic run android, I get the output below Ionic claims that the application is launched, but nothing happens on the phone. I use a Nexus 5 with android 4.4.4.

$ ionic run android
add to body class: platform-android
Running command: /Users/kristoffer/web/photoApp/platforms/android/cordova/run 
Buildfile: /Users/kristoffer/web/photoApp/platforms/android/build.xml

-set-mode-check:

-set-debug-files:

-check-env:
 [checkenv] Android SDK Tools Revision 22.6.2
 [checkenv] Installed at /Development/adt-bundle/sdk

-setup:
     [echo] Project Name: KvittoScanner
  [gettype] Project Type: Application

-set-debug-mode:

-debug-obfuscation-check:

-pre-build:

-build-setup:
[getbuildtools] Using latest Build Tools: 19.0.3
     [echo] Resolving Build Target for KvittoScanner...
[gettarget] Project Target:   Android 4.4.2
[gettarget] API level:        19
     [echo] ----------
     [echo] Creating output directories if needed...
     [echo] ----------
     [echo] Resolving Dependencies for KvittoScanner...
[dependency] Library dependencies:
[dependency] 
[dependency] ------------------
[dependency] Ordered libraries:
[dependency] 
[dependency] ------------------
     [echo] ----------
     [echo] Building Libraries with 'debug'...

nodeps:

-set-mode-check:

-set-debug-files:

-check-env:
 [checkenv] Android SDK Tools Revision 22.6.2
 [checkenv] Installed at /Development/adt-bundle/sdk

-setup:
     [echo] Project Name: CordovaLib
  [gettype] Project Type: Android Library

-set-debug-mode:

-debug-obfuscation-check:

-pre-build:

-build-setup:
[getbuildtools] Using latest Build Tools: 19.0.3
     [echo] Resolving Build Target for CordovaLib...
[gettarget] Project Target:   Android 4.4.2
[gettarget] API level:        19
     [echo] ----------
     [echo] Creating output directories if needed...
     [echo] ----------
     [echo] Resolving Dependencies for CordovaLib...
[dependency] Library dependencies:
[dependency] No Libraries
[dependency] 
[dependency] ------------------

-code-gen:
[mergemanifest] Found Deleted Target File
[mergemanifest] Merging AndroidManifest files into one.
[mergemanifest] Manifest merger disabled. Using project manifest only.
     [echo] Handling aidl files...
     [aidl] No AIDL files to compile.
     [echo] ----------
     [echo] Handling RenderScript files...
     [echo] ----------
     [echo] Handling Resources...
     [aapt] Found modified input file
     [aapt] Generating resource IDs...
     [echo] ----------
     [echo] Handling BuildConfig class...
[buildconfig] No need to generate new BuildConfig.

-pre-compile:

-compile:
     [echo] Creating library output jar file...

-post-compile:

-obfuscate:

-dex:
     [echo] Library project: do not convert bytecode...

-crunch:
   [crunch] Crunching PNG Files in source dir: /Users/kristoffer/web/photoApp/platforms/android/CordovaLib/res
   [crunch] To destination dir: /Users/kristoffer/web/photoApp/platforms/android/CordovaLib/ant-build/res
   [crunch] Crunched 0 PNG files to update cache

-package-resources:
     [echo] Library project: do not package resources...

-package:
     [echo] Library project: do not package apk...

-post-package:

-do-debug:
     [echo] Library project: do not create apk...
[propertyfile] Updating property file: /Users/kristoffer/web/photoApp/platforms/android/CordovaLib/ant-build/build.prop
[propertyfile] Updating property file: /Users/kristoffer/web/photoApp/platforms/android/CordovaLib/ant-build/build.prop
[propertyfile] Updating property file: /Users/kristoffer/web/photoApp/platforms/android/CordovaLib/ant-build/build.prop
[propertyfile] Updating property file: 

    /Users/kristoffer/web/photoApp/platforms/android/CordovaLib/ant-build/build.prop

    -post-build:

    debug:

    -code-gen:
    [mergemanifest] Found Deleted Target File
    [mergemanifest] Merging AndroidManifest files into one.
    [mergemanifest] Manifest merger disabled. Using project manifest only.
         [echo] Handling aidl files...
         [aidl] No AIDL files to compile.
         [echo] ----------
         [echo] Handling RenderScript files...
         [echo] ----------
         [echo] Handling Resources...
         [aapt] Found modified input file
         [aapt] Generating resource IDs...
         [echo] ----------
         [echo] Handling BuildConfig class...
    [buildconfig] No need to generate new BuildConfig.

    -pre-compile:
         [echo] Set jars path to: /Users/kristoffer/web/photoApp/platforms/android/CordovaLib/ant-build/classes.jar

    -compile:
        [javac] Compiling 2 source files to /Users/kristoffer/web/photoApp/platforms/android/ant-build/classes

    -post-compile:

    -obfuscate:

    -dex:
          [dex] input: /Users/kristoffer/web/photoApp/platforms/android/ant-build/classes
          [dex] input: /Users/kristoffer/web/photoApp/platforms/android/CordovaLib/ant-build/classes.jar
          [dex] Using Pre-Dexed classes-d889c6bd0911025d0e9120cf57234197.jar <- /Users/kristoffer/web/photoApp/platforms/android/CordovaLib/ant-build/classes.jar
          [dex] Found modified input file
          [dex] Converting compiled files and external libraries into /Users/kristoffer/web/photoApp/platforms/android/ant-build/classes.dex...
           [dx] Merged dex A (14 defs/28.2KiB) with dex B (206 defs/314.1KiB). Result is 220 defs/415.6KiB. Took 0.3s

    -crunch:
       [crunch] Crunching PNG Files in source dir: /Users/kristoffer/web/photoApp/platforms/android/res
       [crunch] To destination dir: /Users/kristoffer/web/photoApp/platforms/android/ant-build/res
       [crunch] Crunched 0 PNG files to update cache

    -package-resources:
         [aapt] Found modified input file
         [aapt] Creating full resource package...
         [aapt]     (skipping file '.bower.json' due to ANDROID_AAPT_IGNORE pattern '.*')
         [aapt]     (skipping file '.bower.json' due to ANDROID_AAPT_IGNORE pattern '.*')
         [aapt]     (skipping file '.bower.json' due to ANDROID_AAPT_IGNORE pattern '.*')
         [aapt]     (skipping file '.bower.json' due to ANDROID_AAPT_IGNORE pattern '.*')
         [aapt]     (skipping file '.bower.json' due to ANDROID_AAPT_IGNORE pattern '.*')
         [aapt] Warning: AndroidManifest.xml already defines debuggable (in http://schemas.android.com/apk/res/android); using existing value in manifest.

    -package:
    [apkbuilder] Found modified input file
    [apkbuilder] Creating KvittoScanner-debug-unaligned.apk and signing it with a debug key...

    -post-package:

    -do-debug:
     [zipalign] Running zip align on final apk...
         [echo] Debug Package: /Users/kristoffer/web/photoApp/platforms/android/ant-build/KvittoScanner-debug.apk
    [propertyfile] Updating property file: /Users/kristoffer/web/photoApp/platforms/android/ant-build/build.prop
    [propertyfile] Updating property file: /Users/kristoffer/web/photoApp/platforms/android/ant-build/build.prop
    [propertyfile] Updating property file: /Users/kristoffer/web/photoApp/platforms/android/ant-build/build.prop
    [propertyfile] Updating property file: /Users/kristoffer/web/photoApp/platforms/android/ant-build/build.prop

    -post-build:
         [move] Moving 1 file to /Users/kristoffer/web/photoApp/platforms/android/ant-build
         [move] Moving 1 file to /Users/kristoffer/web/photoApp/platforms/android/CordovaLib/ant-build

    debug:

    BUILD SUCCESSFUL
    Total time: 5 seconds
    WARNING : No target specified, deploying to device '05f2fdad3444ea60'.
    Using apk: /Users/kristoffer/web/photoApp/platforms/android/ant-build/KvittoScanner-debug-unaligned.apk
    Installing app on device...
    Launching application...
    LAUNCH SUCCESS

index.html in the android app:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
    <title></title>

    <link href="lib/ionic/css/ionic.css" rel="stylesheet">
    <link href="css/style.css" rel="stylesheet">

    <!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above
    <link href="css/ionic.app.css" rel="stylesheet">
    -->

    <!-- ionic/angularjs js -->
    <script src="lib/ionic/js/ionic.bundle.js"></script>

    <!-- ngCordova -->
    <script src="lib/ng-cordova.min.js"></script>

    <!-- cordova script (this will be a 404 during development) -->
    <script src="cordova.js"></script>

    <!-- your app's js -->
    <script src="js/app.js"></script>
    <script src="js/controllers.js"></script>
    <script src="js/services.js"></script>
  </head>
  <body ng-app="starter" animation="slide-left-right-ios7" class="platform-android platform-cordova platform-webview">
    <!-- 
      The nav bar that will be updated as we navigate between views.
    -->
    <ion-nav-bar class="bar-stable nav-title-slide-ios7">
      <ion-nav-back-button class="button-icon icon  ion-ios7-arrow-back">
        Back
      </ion-nav-back-button>
    </ion-nav-bar>
    <!-- 
      The views will be rendered in the <ion-nav-view> directive below
      Templates are in the /templates folder (but you could also
      have templates inline in this html file if you'd like).
    -->
    <ion-nav-view></ion-nav-view>
  </body>
</html>

回答1:

Type ionic info and check which Cordova version you have installed. If you have v5.0.0 that now requires a new plugin otherwise all http requests are blocked.

Recently cordova released cordova-android 4.0 with the laster version of the cordova cli. The changes in cordova-android prevent any http request by default. There have already been a few posts about this issue. To fix this, all you have to do is add the cordova-whitelist-plugin. ionic plugin add cordova-plugin-whitelist https://github.com/apache/cordova-plugin-whitelist
see ref: https://forum.ionicframework.com/t/build-proccess-changed-and-now-cannot-call-to-api/25103

Happy hacking :)



回答2:

try disabling the firewall on your machine. it worked for me and I have the same configuration as you do



回答3:

I had the same problem sometime back. The reason for that was my source files in www/ folder didn't had cordova.js included in the index.html. If someone faces this problem, do make sure to add cordova.js in the source files like

<script src="cordova.js"></script>