更新到cordova android 7.0.0后,无法在Android平台上安装自定义cordova插件

时间:2017-12-19 08:09:00

标签: cordova ionic-framework cordova-plugins cordova-cli cordova-android

我创建了一个cordova插件,它与旧的cordova android版本(< 7.0.0)工作正常。一旦我从cli更新到cordova-android 7.0.0,即使在更新基于cordova blog的plugin.xml之后也无法安装我的插件。

我能够安装一些其他插件,即使那些有cordova android 7依赖。  并尝试了两个选项

<config-file target="app/src/main/AndroidManifest.xml" parent="/manifest/application">

<config-file target="AndroidManifest.xml" parent="/manifest/application">

更新

如果我删除我的自定义build.gradle

<framework src="src/android/abcPlugin.gradle" custom="true" type="gradleReference" />

正在运作..

这是我使用自定义build.gradle时遇到的错误。

cordova plugin add ../cordova-plugin-abc --save
Installing "cordova-plugin-abc" for android

Android Studio project detected

Error during processing of action! Attempting to revert...

Failed to install 'cordova-plugin-abc': Error: Uh oh!
ENOENT: no such file or directory, open '/Users/arjuntraj/Documents/abc/platforms/android/AndroidManifest.xml'

enter image description here

离子,科尔多瓦信息

enter image description here

的plugin.xml

<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
        xmlns:android="http://schemas.android.com/apk/res/android"
        id="cordova-plugin-abc" 
        version="1.0.1">

    <name>CordovaPluginabc</name>
    <description>abc POC</description>
    <license>MIT</license>
    <keywords>ID</keywords>
    <author>  Team  </author>

    <engines>
        <engine name="cordova" version=">=7.0.0" />
        <engine name="cordova-android" version=">=7.0.0" />
    </engines>   

    <js-module src="www/abc.js" name="CordovaPluginabc">
        <clobbers target="cordova.plugins.abc" />
    </js-module>

    <!-- android -->
    <platform name="android">

        <config-file target="res/xml/config.xml" parent="/*">
            <feature name="CordovaPluginabc">
                <param name="android-package" value="com.abc.CordovaPluginabc" />
            </feature>
        </config-file>


        <config-file target="app/src/main/AndroidManifest.xml" parent="/manifest/application">
            <activity android:name="com.abc.sdk.AbcActivity">
            </activity>
        </config-file>

           <source-file src="src/android/abc/abc-sdk-v1.aar" target-dir="libs" framework="true" />    

        <source-file src="src/android/com/abc/CordovaPluginabc.java" target-dir="app/src/main/java/com/abc" />

        <framework src="src/android/abcPlugin.gradle" custom="true" type="gradleReference" />

    </platform>



</plugin>

文件夹结构

enter image description here

2 个答案:

答案 0 :(得分:1)

通过更新两个文件的目标来解决此问题。

对于aar lib文件:

目标-DIR = “应用程序/ SRC /主/库”

和java文件:

目标-DIR = “SRC / COM / ABC”

<source-file src="src/android/abc/abc.aar" target-dir="app/src/main/libs" framework="true" />
<source-file src="src/android/com/abc/CordovaPluginAABC.java" target-dir="src/com/rak/abc" />

并且gradle扩展也正常工作,没有任何chnage

答案 1 :(得分:0)

这对我来说是一个短期解决方案:

很可能在platform / android / cordova / Api.js:82中失败了这个if语句 您可以将其注释掉以进行测试并获得构建。无论出于什么原因,你的android构建仍然认为它是旧式构建。

{{1}}