android - Ionic 2-无法使用 aar 文件/ios 框架添加自定义 android/ios 插件

标签 android ios ionic-framework ionic2 cordova-plugins

我有 aar 框架。我在 git 上创建了存储库,将其作为插件安装到我的项目中。它在没有 aar 框架的情况下进行了测试。但是在添加 aar 框架后,我遇到了 aar 框架的 values.xml 问题。在插件的帮助下,我可以在项目中安装 aar 框架。下面是我的项目文件。请让我知道我做错了什么。

<强>1。插件.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-testpayment" version="1.0.0">
   <name>TestPayment</name>
   <js-module name="TestPayment" src="www/TestPayment.js">
      <clobbers target="TestPayment" />
   </js-module>
   <platform name="android">
      <config-file parent="/*" target="res/xml/config.xml">
         <feature name="TestPayment">
            <param name="android-package" value="cordova.plugin.testpayment.TestPayment" />
         </feature>
      </config-file>
      <config-file parent="/*" target="AndroidManifest.xml" />
      <source-file src="src/android/TestPayment.java" target-dir="src/cordova/plugin/testpayment/TestPayment" />
      <framework src="src/android/liquidsdk.gradle" custom="true" type="gradleReference" />
      <resource-file src="src/android/libs/widget-debug.aar" target="libs/widget-debug.aar" />
      <resource-file src="src/android/res/values/colors.xml" target="res/values/colors.xml" />
      <resource-file src="src/android/res/values/strings.xml" target="res/values/strings.xml" />
      <resource-file src="src/android/res/values/styles.xml" target="res/values/styles.xml" />
   </platform>
   <platform name="ios">
      <config-file parent="/*" target="config.xml">
         <feature name="TestPayment">
            <param name="ios-package" value="TestPayment" />
         </feature>
      </config-file>
      <framework src="src/ios/LiquidPayWidget.framework" custom="true" embed="true" />
      <source-file src="src/ios/TestPayment.m" />
   </platform>
</plugin>

<强>2。项目结构-

| src-
    | android
           | libs
               | XYZ.aar
           | res
               | values
                     | colors.xml
                     | strings.xml
                     | styles.xml
           | myFile.gradle
           | myFile.java
    | ios
           | XYZ.framework
           | myFile.m
| www
    | myPlugin.js
| build-extras.gradle
| package.json
| plugin.xml

<强>3。错误-在 aar 文件的 values.xml 中获取错误

Information:Gradle tasks [:app:assembleDebug]
/Users/mobilesolution/.gradle/caches/transforms-1/files-1.1/widget-debug.aar/bcf9996b5e370c6ae472fa0793a77af4/res/values/values.xml
Error:(57, 5) error: style attribute 'attr/colorPrimary (aka io.ionic.starter:attr/colorPrimary)' not found.
Error:(57, 5) error: style attribute 'attr/colorPrimaryDark (aka io.ionic.starter:attr/colorPrimaryDark)' not found.
Error:(57, 5) error: style attribute 'attr/colorAccent (aka io.ionic.starter:attr/colorAccent)' not found.
Error:(62, 5) error: style attribute 'attr/windowActionBar (aka io.ionic.starter:attr/windowActionBar)' not found.
Error:(62, 5) error: style attribute 'attr/windowNoTitle (aka io.ionic.starter:attr/windowNoTitle)' not found.
Error:resource style/Theme.AppCompat.Light.DarkActionBar (aka io.ionic.starter:style/Theme.AppCompat.Light.DarkActionBar) not found.
Error:resource style/ThemeOverlay.AppCompat.Dark.ActionBar (aka io.ionic.starter:style/ThemeOverlay.AppCompat.Dark.ActionBar) not found.
/Users/mobilesolution/Documents/Vishal Gole/LiquidPay/IonicApp/PayApp/platforms/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml
Error:(69) style attribute 'attr/colorPrimary (aka io.ionic.starter:attr/colorPrimary)' not found.
Error:(70) style attribute 'attr/colorPrimaryDark (aka io.ionic.starter:attr/colorPrimaryDark)' not found.
Error:(71) style attribute 'attr/colorAccent (aka io.ionic.starter:attr/colorAccent)' not found.
Error:(75) style attribute 'attr/windowActionBar (aka io.ionic.starter:attr/windowActionBar)' not found.
Error:(76) style attribute 'attr/windowNoTitle (aka io.ionic.starter:attr/windowNoTitle)' not found.
Error:resource style/ThemeOverlay.AppCompat.Light (aka io.ionic.starter:style/ThemeOverlay.AppCompat.Light) not found.
Error:failed linking references.
Error:java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ':app:processDebugResources'.
> Failed to execute aapt
Information:BUILD FAILED in 5s
Information:18 errors
Information:0 warnings
Information:See complete output in console

-- 如果我做错了什么,请告诉我。

最佳答案

**ADDING AAR/FRAMEWORK IN IONIC 2 PROJECT**

1) 首先,您不能将 AAR/框架直接添加到您的 ionic 项目中。

2) 你需要创建cordova插件来实现这个

创建插件

1) 按照这些步骤

npm install -g plugman

2)然后

plugman create --name (PLUGIN NAME) --plugin_id cordova-plugin-(PLUGIN NAME) --plugin_version 1.0.0

3) 路径

cd (PLUGIN NAME)

plugman platform add --platform_name ios

plugman platform add --platform_name android

4) 创建包.json文件

 plugman createpackagejson .

5)全局cordova插件结构:

 pluginFolder/

  build-extras.gradle

  plugin.xml

  myaarfolder/

src/

android/

  mybuild.gradle

  (PLUGIN NAME).java

6) 在 plugin.xml 文件中:

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

<resource-file src="myaarfolder/my.aar" target="libs/my.aar" />

7) 在 mybuild.gradle 中

repositories{    

  jcenter()

  flatDir {

     dirs 'libs'

  }

}

dependencies {

  compile(name:'my', ext:'aar')

 }

android {

   packagingOptions {

      exclude 'META-INF/NOTICE'

      exclude 'META-INF/LICENSE'

     }

  }

8) 现在将插件添加到您创建的 ionic 项目中

ionic cordova plugin add (PLUGIN_PATH)

完成上述步骤后,我执行了我的项目,但是我得到了//CORDOV/EXEC NOT AVAILABLE\

我在 ios 框架中尝试过,我也遇到了同样的错误

关于android - Ionic 2-无法使用 aar 文件/ios 框架添加自定义 android/ios 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52951788/

相关文章:

Android:无法从 View 转换到 MapView

ios - UITableView 从 UIView 的右侧出现

ios - 打开 facebook 页面进入 facebook 应用 Ios + ionic

meteor - 如何使用driftyco覆盖Ionic sass变量:ionic meteor package

html - 如何仅设置有序列表项的样式?没有嵌套在里面的无序列表项

java - Android SimpleDateFormat问题

android - 生成签名 APK 向导生成启用调试的 APK

android - savedInstanceState 始终为空

ios - FireBase中的新应用

ios - 手动解码 Codable 类的非 Codable 属性