【问题标题】:Ionic 3 : Android add platform fails after installing cordova-plugin-camera and Native Web-intentIonic 3:安装cordova-plugin-camera和Native Web-intent后Android添加平台失败
【发布时间】:2017-09-07 07:50:26
【问题描述】:

首先,感谢您花时间帮助我!

总结:

尝试将 cordova-plugin-camera 添加到我的 ionic 3 项目中。 在多次失败并最终成功之后,现在我的应用不再基于我的 android 构建了。

-------- 开始编辑--------

经过多次测试,当我同时安装插件相机和网络意图时,似乎存在冲突/问题。

这两个插件都来自 Ionic Native:

-------- 结束编辑--------

我的离子信息

    cli packages: (C:\Users\[...]\AppData\Roaming\npm\node_modules)
        @ionic/cli-utils  : 1.9.2
        ionic (Ionic CLI) : 3.9.2
    global packages:
        Cordova CLI : 7.0.1
    local packages:
        @ionic/app-scripts : 2.1.3
        Cordova Platforms  : android 6.2.3
        Ionic Framework    : ionic-angular 3.6.0
    System:
        Node : v8.1.2
        npm  : 5.0.3
        OS   : Windows 10

我采取的步骤(一点历史):

由于 cordova-plugin-compat 版本不兼容(可在许多论坛中找到),我无法安装相机插件。 所以我遵循了一些步骤:

  • 删除了 cordova-plugin-compat v1.0.0 --force
  • 已安装最新版本的 cordova-plugin-compat@1.1.0
  • --> run android : 我的应用程序仍然可以在我的设备上运行(检查!)

然后我尝试安装相机插件:

  • ionic cordova 插件添加cordova-plugin-camera
  • 这是我得到的结果:

    > cordova plugin add cordova-plugin-camera --save
    × Running command - failed!
    [ERROR] An error occurred while running cordova plugin add cordova-plugin-camera --save (exit code 1):
    Installing "cordova-plugin-camera" for android
    Plugin dependency "cordova-plugin-compat@1.1.0" already fetched, using that version.
    Dependent plugin "cordova-plugin-compat" already installed on android.
    [...]
    BUILD SUCCESSFUL
    Error during processing of action! Attempting to revert...
    Failed to install 'cordova-plugin-camera': Error
         at copyNewFile
    (C:\[...]\platforms\android\cordova\lib\pluginHandlers.js:248:15)
         at install (C:\[...]\platforms\android\cordova\lib\pluginHandlers.js:43:17)
         at ActionStack.process
    (C:\[...]\platforms\android\cordova\node_modules\cordova-common\src\ActionStack.js:56:25)
         at PluginManager.doOperation
    (C:\[...]\platforms\android\cordova\node_modules\cordova-common\src\PluginManager.js:117:20)
         at PluginManager.addPlugin
    (C:\[...]\platforms\android\cordova\node_modules\cordova-common\src\PluginManager.js:147:17)
         at C:\[...]\platforms\android\cordova\Api.js:254:18
         at _fulfilled
    (C:\[...]\platforms\android\cordova\node_modules\q\q.js:854:54)
         at self.promiseDispatch.done
    (C:\[...]\platforms\android\cordova\node_modules\q\q.js:883:30)
         at Promise.promise.promiseDispatch
    (C:\[...]\platforms\android\cordova\node_modules\q\q.js:816:13)
         at C:\[...]\platforms\android\cordova\node_modules\q\q.js:624:44
    Error: Uh oh!
    "C:\[...]\platforms\android\res\xml\provider_paths.xml" already exists!
    

然后,我继续按照我在其他线程中看到的有关相机插件问题的步骤:

  • 移除安卓平台
  • ionic cordova 插件添加cordova-plugin-camera
  • --> 插件安装成功! (我认为,太棒了!)

所以我重新添加了平台:

  • ionic cordova platform add android
  • 和繁荣:

    > cordova platform add android --save
    × Running command - failed!
    [ERROR] Exception: Using cordova-fetch for cordova-android@~6.2.2
    Adding android project...
    Creating Cordova project for the Android platform:
            Path: platforms\android
            Package: com.app.app
            Name: app
            Activity: MainActivity
            Android target: android-25
    Subproject Path: CordovaLib
    
    Android project created with cordova-android@6.2.3
    
    Installing "com-darryncampbell-cordova-plugin-intent" for android
    Subproject Path: CordovaLib
    Installing "cordova-plugin-camera" for android
    Plugin dependency "cordova-plugin-compat@1.1.0" already fetched, using that version.
    Installing "cordova-plugin-compat" for android
    Error during processing of action! Attempting to revert...
    Failed to install 'cordova-plugin-camera': Error
         at copyNewFile
    (C:\[...]\platforms\android\cordova\lib\pluginHandlers.js:248:15)
         at install (C:\[...]\platforms\android\cordova\lib\pluginHandlers.js:43:17)
         at ActionStack.process
    (C:\[...]\platforms\android\cordova\node_modules\cordova-common\src\ActionStack.js:56:25)
         at PluginManager.doOperation
    (C:\[...]\platforms\android\cordova\node_modules\cordova-common\src\PluginManager.js:117:20)
         at PluginManager.addPlugin
    (C:\[...]\platforms\android\cordova\node_modules\cordova-common\src\PluginManager.js:147:17)
         at C:\[...]\platforms\android\cordova\Api.js:254:18
         at _fulfilled
    (C:\[...]\platforms\android\cordova\node_modules\q\q.js:854:54)
         at self.promiseDispatch.done
    (C:\[...]\platforms\android\cordova\node_modules\q\q.js:883:30)
         at Promise.promise.promiseDispatch
    (C:\[...]\platforms\android\cordova\node_modules\q\q.js:816:13)
         at C:\[...]\platforms\android\cordova\node_modules\q\q.js:570:49
    Error: Uh oh!
    "C:\[...]\platforms\android\res\xml\provider_paths.xml" already exists!
    

最后一步,我已经运行npm install -g cordova ionic

    npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
    C:\Users\[...]\AppData\Roaming\npm\ionic -> C:\Users\[...]\AppData\Roaming\npm\node_modules\ionic\bin\ionic
    C:\Users\[...]\AppData\Roaming\npm\cordova -> C:\Users\[...]\AppData\Roaming\npm\node_modules\cordova\bin\cordova
    + ionic@3.9.2
    + cordova@7.0.1
    added 5 packages, removed 6 packages and updated 42 packages in 55.193s

又是ionic cordova platform add android,但现在它告诉我:

    > cordova platform add android --save
    × Running command - failed!
    [WARN] Platform already added. Saving platforms to config.xml.
    > cordova platform save
    √ Running command - done!

如果我尝试ionic cordova run android:

    > cordova platform add android --save
    × Running command - failed!
    [WARN] Platform already added. Saving platforms to config.xml.
    > cordova platform save
    √ Running command - done!
    [INFO] Running app-scripts build: --platform android --target cordova
    [...]
    > ionic cordova prepare
    [WARN] No Cordova platforms listed in config.xml. Nothing to prepare.

    You can save your installed platforms to config.xml with the ionic cordova platform save command.

ionic cordova platform save 命令不会改变任何事情。

-------- 开始编辑 -------- 然后我尝试创建一个全新的项目并一个一个地添加插件,从相机开始,并在安装每个插件后在我的设备上重建/运行......一切都很好,直到最后一个,这是网络-intent 插件,我遇到了和以前一样的问题:

    Error: Uh oh!
            "C:\[...]\newApp\platforms\android\res\xml\provider_paths.xml" already exists!

卸载它,删除并重新添加平台,然后在设备上构建、编译和运行再次工作。

-------- 结束编辑--------

这是我拥有的所有插件的列表:

    com-darryncampbell-cordova-plugin-intent 0.0.14 "Intent Shim"
    cordova-plugin-camera 2.4.1 "Camera"
    cordova-plugin-compat 1.1.0 "Compat"
    cordova-plugin-console 1.0.5 "Console"
    cordova-plugin-device 1.1.4 "Device"
    cordova-plugin-facebook4 1.9.1 "Facebook Connect"
    cordova-plugin-file 4.3.3 "File"
    cordova-plugin-file-transfer 1.6.3 "File Transfer"
    cordova-plugin-photo-library 2.1.0 "Photo Library"
    cordova-plugin-splashscreen 4.0.3 "Splashscreen"
    cordova-plugin-2.2.2 "StatusBar"
    cordova-plugin-whitelist 1.3.1 "Whitelist"
    cordova-sqlite-storage 2.0.4 "Cordova sqlite storage plugin"
    ionic-plugin-keyboard 2.2.1 "Keyboard"

不确定我是否需要降级 Ionic 或 Cordova CLI、Ionic 或 Cordova 平台或其他任何东西才能使其正常工作。

再次感谢您的帮助!

【问题讨论】:

    标签: android cordova-plugins ionic3


    【解决方案1】:

    在ionic3中你不需要添加平台

    你只要运行ionic cordova run android它就会自动添加它

    这也是错误的命令,据我所知,他们不是这样的命令

    cordova platform add android --save // wrong command
    

    对的一个

    ionic cordova run android // right command directly add platform and run 
    

    【讨论】:

    • 您好 amyogiji,感谢您的评论。无需运行应用程序即可添加平台:cordova platform add android。然后在运行应用程序时,使用ionic cordova run android,如果平台已经添加,则从构建开始,否则从添加平台开始。我已经测试了两者,并且在这两个 senarios 中它都不起作用。顺便说一句,cordova platform add android --save 不是我的命令,它是在执行 ionic cordova run android 时完成的自动命令
    【解决方案2】:

    提示:在 Android Studio 中打开 android 项目。您可能会在那里找到更有用的错误堆栈。

    我遇到了同样的问题并发现,由于我的 config.xml 中的以下行,无法读取清单。

    <preference name="Orientation" value="all" />
    

    【讨论】:

      【解决方案3】:

      离子键盘也发生了同样的事情,我在命令下运行

      要删除插件,请运行代码:cordova plugin remove ionic-plugin-keyboard

      然后删除android平台并再次添加。它现在像魅力一样运行:) 希望它会对某人有所帮助。

      【讨论】:

        猜你喜欢
        • 2021-11-16
        • 2013-07-31
        • 1970-01-01
        • 1970-01-01
        • 2020-04-27
        • 1970-01-01
        • 2017-05-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多