They initialize the *internal* components of the Android plugin (thus
subject to break at any time) which know how to resolve the SDK location
for the project. After doing this they add the Maven m2 repository from
inside the SDK so that artifacts inside the SDK can be resolved.

This also relies on the fact that the support-annotations artifact is a
jar, rather than the normal aar, and thus don't require additional
processing in order to add them as dependencies.

On Wed Nov 19 2014 at 2:22:36 AM Kiran Rao <[email protected]> wrote:

> Thanks a ton Jake! Using your work-around I was able to get it to work. I
> have updated the github repo with the work-around. What do those additional
> lines in the build.gradle actually do?
>
> @Xavier, is there a bug filed for this issue that I can follow?
>
>
> On Wednesday, 19 November 2014 04:00:43 UTC+5:30, Jake Wharton wrote:
>
>> A couple months ago I played with adding the support annotations jar as a
>> dependency to an annotation processor API similar to your 'api' module:
>> https://gist.github.com/JakeWharton/e8a3685feb6a94b23393
>>
>> I half-started expanding this into a Gradle plugin which included aar
>> unpacking for provided deps and a provided android.jar for the actual
>> processor module. Never got around to finishing it.
>>
>> On Mon Nov 17 2014 at 11:41:26 PM Kiran Rao <[email protected]> wrote:
>>
>>> @Xavier, here is a skeleton project I quickly put together. Do let me
>>> know if you need more details:
>>>
>>> https://github.com/curioustechizen/studio-apt-android-dep-issue
>>>
>>>
>>> On Tuesday, 18 November 2014 12:08:51 UTC+5:30, Xavier Ducrohet wrote:
>>>
>>>> Would you might making a very very simple project that shows the issue?
>>>> That'll help me make sure we can make something that works.
>>>>
>>> On Sun, Nov 16, 2014 at 10:25 PM, Kiran Rao <[email protected]>
>>>> wrote:
>>>>
>>> Bump! Any ideas on this? Or perhaps this is not the right forum for this
>>>>> question?
>>>>>
>>>>>
>>>>> On Thursday, 13 November 2014 18:37:03 UTC+5:30, Kiran Rao wrote:
>>>>>>
>>>>>> I am developing an annotation processor using Android Studio. My
>>>>>> project has three modules:
>>>>>>
>>>>>> *anno-api*- This contains that API - i.e, just defines the
>>>>>> annotations and some constants
>>>>>> *anno-processor* - This has a compile dependency on anno-api and it
>>>>>> contains the class extending AbstractProcessor
>>>>>> *sample* - This demonstrates how to use the annotations.
>>>>>>
>>>>>> The setup is working just fine. Now, I want to do better validation
>>>>>> in my Annotation Processor. For this, both anno-api and anno-processor 
>>>>>> need
>>>>>> to have access to the Android API.
>>>>>> For example, consider this annotation. It has a method of type Class
>>>>>> but I want to restrict this to just sub-classes of Activity.
>>>>>>
>>>>>> @Retention(RetentionPolicy.SOURCE)
>>>>>> @Target(ElementType.TYPE)
>>>>>> public @interface AwesomeActivity {
>>>>>>     Class<? extends android.app.Activity> base();
>>>>>> }
>>>>>>
>>>>>> How do I go about doing this? *How do I tell anno-api and
>>>>>> anno-processor to depend on Android classes?*
>>>>>>
>>>>>> Here are the things I tried:
>>>>>>
>>>>>> 1) I tried making both anno-api and anno-processor as Android Library
>>>>>> projects.
>>>>>> 2) I tried adding android.jar in the lib/ folder of the anno-api
>>>>>> project and adding a dependency to the JAR file in build.gradle.
>>>>>>
>>>>>> In both cases the I end up with compile errors in my Annotation
>>>>>> Processor. Basically it refuses to recognize the javax.annotation.* and
>>>>>> other such classes. I suspect that at this point, only the classes 
>>>>>> present
>>>>>> in android.jar are recognized.
>>>>>>
>>>>>  --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "adt-dev" group.
>>>>>
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>>
>>>>
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Xavier Ducrohet
>>>> Android SDK Tech Lead
>>>> Google Inc.
>>>> http://developer.android.com | http://tools.android.com
>>>>
>>>> Please do not send me questions directly. Thanks!
>>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "adt-dev" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>  --
> You received this message because you are subscribed to the Google Groups
> "adt-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"adt-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to