繁体   English   中英

Ionic 3:安装cordova-plugin-camera和Native Web-intent后,Android添加平台失败

[英]Ionic 3 : Android add platform fails after installing cordova-plugin-camera and Native Web-intent

首先,感谢您抽出宝贵的时间来帮助我!

摘要:

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

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

经过大量测试,当我同时安装了camera和web-intent插件时,似乎有冲突/问题。

这两个插件均来自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
  • ->运行android:我的应用仍然可以运行,并且可以在我的设备上运行(检查!)

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

  • 离子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! 

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

  • 删除android平台
  • 离子cordova插件添加cordova-plugin-camera
  • ->插件安装成功! (我认为,很棒!)

所以我加回平台:

  • ionic cordova platform add android
  • 和BOOM:

     > 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再次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命令不会改变任何事情。

--------开始编辑--------然后,我尝试创建一个全新的项目,并一个接一个地添加插件,从一个摄像头开始,并在每次插入后在我的设备上重建/运行在安装中...直到最后一个都可以正常工作,最后一个是Web意图插件,我遇到了与以前相同的问题:

    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平台或其他任何东西才能使此工作正常进行。

再次感谢您的帮助!

在ionic3中,您无需添加平台

您只需运行ionic cordova run android它就会自动添加

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

cordova platform add android --save // wrong command

正确的那个

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM