Issue
I am new to the cordova plugin development stuff. I want to write a plugin which is able to open a new android activty and showing some advertisement.
So I followed a simple tutorial here. That works very well and as expected.
Next step is to include this Android Studio Gradle project to my plugin.
My first try: Adding the gradle project to a subfolder of my cordova plugin and adding the following line to the plugin.xml file:
<framework src="libs/Broper/build.gradle" custom="true" type="gradleReference" />
also I tried:
<framework src="libs/Broper/app/build.gradle" custom="true" type="gradleReference" />
doesn't work. So I can't import the classes of that android studio project to my plugin java files.
Then a better solution (I thought so) is to add an AAR instead. But there I don't even have a clue what to do to add that AAR in my cordova plugin.
So, the question is: How do I add an android studio project (or library) to my cordova plugin the right way?
Solution
Here's what I've done to use a gradle reference with a Cordova plugin, I think this might help you.
Global structure :
pluginFolder/
build-extras.gradle
plugin.xml
yourDirContainingYourAAR/
src/
android/
yourFile.gradle
myPlugin.java
Put your library, say foo.aar
, in the yourDirContainingYourAAR
directory (create it if needed)
In the
plugin.xml
file :<platform name="android"> <!-- your configuration elements, references, source files, etc... --> <framework src="src/android/yourFile.gradle" custom="true" type="gradleReference" /> <resource-file src="yourDirContainingYourAAR/foo.aar" target="libs/foo.aar" /> </platform>
In the gradle file
yourFile.gradle
:repositories{ jcenter() flatDir { dirs 'libs' } } dependencies { compile(name:'foo', ext:'aar') } android { packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' } }
In the root folder of your plugin (same level as
plugin.xml
) create abuild-extras.gradle
. If needed, add or removeminSdkVersion
andtargetSdkVersion
according to your project needs :android { defaultConfig { minSdkVersion 16 targetSdkVersion 22 } packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' } }
Answered By - Niko
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.