Tuesday, June 15, 2010

Re: [android-developers] Re: Android Library Project

I just noticed the issue with '-' char.

The issue is that linked folder in Eclipse cannot be named with a -
char and we use the name of the project to make up the name of the
linked project.

I've fixed it for the next version to have the name of the linked
folder drop any '-' char from the project name.

As for 'src' vs. 'java' (or others), yes this is a current limitation
that I hope I can remove for the next version.

Xav

On Sat, Jun 12, 2010 at 4:50 AM, Ratamovic <ratamovic@gmail.com> wrote:
> Hi Xavier and all,
>
> There is clearly some problems with project naming.
> I usually name my projects with '-' (e.g. "Project-Lib") but that
> doesn't work for my library unless I rename them (to "ProjectLib") and
> restart my Eclipse. I also noticed that to create a link to a library
> project, the library and application source folder Must be named
> 'src' (sadly I name them java since I work with the NDK...). I am not
> sure weither it would work if my source folder was inside 'src' (e.g.
> like 'src/java'). Also It is not working if your library src folder is
> in fact an Eclipse folder link. I need a hard Linux symbolic link.
> That would be really great to indicate these issues in the Android
> manual page :)!
>
> Regards.
>
>
> On 5 juin, 22:56, Xavier Ducrohet <x...@android.com> wrote:
>> How does your library project depend on the (standard?) java project?
>>
>> From the refactoring feature point of view, both projects are Java
>> project (a library project, like normal Android project, is both Java
>> and Android projects), so I'm not sure how it's the fault of the
>> library feature?
>> (Now, after participating in this thread a couple weeks back, I have
>> been to busy to see if linked folders in Eclipse have poor refactoring
>> support, so there may be issues there. I'll try that soon hopefully)
>>
>> Anytime you touch a java file in a some advanced way (renaming,
>> moving, extracting, refactoring) the android plug-in does nothing,
>> it's all the JDT.
>>
>> In the end, I think dealing with the pain of refactoring might be
>> worth it if the library really provides benefit once the refactoring
>> is done, since this should be a one time thing, but you're going to
>> use your library many times in various projects (I would expect, or
>> you wouldn't need the library in the first place)
>>
>> Xav
>>
>> On Fri, Jun 4, 2010 at 10:47 PM, Mark Carter <mjc1...@googlemail.com> wrote:
>> > I had to abandon the Library Project approach in the end because I was
>> > running into so many eclipse errors it was really slowing me down. This is
>> > particularly true when refactoring - which, I suppose, is the first thing
>> > people do when changing their code to use libraries.
>> > For example, if your Library project depends on a Java project and you do
>> > things like rename packages in that Java project, then eclipse would throw
>> > up an error (unfortunately can't remember which one). Restarting eclipse
>> > didn't seem to make a difference. Workaround was to create a new package and
>> > move classes into that. Didn't isolate the problem so there might be other
>> > factors involved here - like another Android project also depending on that
>> > Java project.
>>
>> > On 3 June 2010 18:01, Didier Girard <didier.gir...@gmail.com> wrote:
>>
>> >> Xavier,
>> >> I was just in front of the same problem.
>> >> If you could just add a note about restarting eclipse in the following
>> >> page it could help a lot :
>> >>http://developer.android.com/guide/developing/eclipse-adt.html
>> >> Thanks in advance,
>> >> Didier
>>
>> >> On May 23, 9:06 pm, Xavier Ducrohet <x...@android.com> wrote:
>> >> > When you do the link between the main project and the library (as
>> >> > shown
>> >> > here:http://developer.android.com/images/developing/adt-props-libRef.png),
>> >> > try to simply restart Eclipse (I know it's annoying) and the link
>> >> > should happen.
>>
>> >> > The library source folder will appear in your main project as a new
>> >> > source folder named after your library project name with a [Android
>> >> > Library] tag after it. I'm trying to attach a small screenshot that
>> >> > shows the connection.
>>
>> >> > Xav
>>
>> >> > On Sun, May 23, 2010 at 11:53 AM, Michael A. <michael.aki...@gmail.com>
>> >> > wrote:
>> >> > > Just to note that I am fully up to date with both the SDK and Eclipse
>> >> > > plugins, so that does not appear to be the problem.
>>
>> >> > > On May 23, 8:45 pm, "Michael A." <michael.aki...@gmail.com> wrote:
>> >> > >> Yes - I realize that. It just doesn't work in my setup. :-(
>>
>> >> > >> I can see the R.java file from the library gets included in the
>> >> > >> generated content, but i don't get access to the classes in the
>> >> > >> library project. Very frustrating.
>>
>> >> > >> Regards,
>>
>> >> > >> Michael A.
>>
>> >> > >> On May 23, 7:24 pm, Lance Nanek <lna...@gmail.com> wrote:
>>
>> >> > >> > The only time I've seen that "Could not find <otherproject.apk>"
>> >> > >> > warning was in the same situation as mentioned above, when the
>> >> > >> > project
>> >> > >> > being run used an Eclipse, Java Build Path, Project dependency on
>> >> > >> > the
>> >> > >> > other project.
>>
>> >> > >> > If you want to double check that you don't have that, right click
>> >> > >> > on
>> >> > >> > the project being run, choose Properties from the menu that pops
>> >> > >> > up,
>> >> > >> > then choose Java Build Path on the left, then choose the Projects
>> >> > >> > tab.
>> >> > >> > Make sure you don't have any Android projects listed there. With
>> >> > >> > this
>> >> > >> > new library feature you don't specify the Android projects you
>> >> > >> > depend
>> >> > >> > on in the Java Build Path section of the Properties. You do it in
>> >> > >> > the
>> >> > >> > Android section of the Properties.
>>
>> >> > >> > On May 23, 7:14 am, "Michael A." <michael.aki...@gmail.com> wrote:
>>
>> >> > >> > > I'm seeing exactly the same problem as Mark Carter.
>>
>> >> > >> > > I've followed the instructions on the reference pages exactly (at
>> >> > >> > > least as far as I can make out). The app project compiles fine
>> >> > >> > > and is
>> >> > >> > > able to use and inherit classes in the library project, but
>> >> > >> > > trying to
>> >> > >> > > run the (non-library) project in the emulator throws up the
>> >> > >> > > "Could not
>> >> > >> > > find <name.of.android.library>.apk!" line right after installing
>> >> > >> > > the
>> >> > >> > > non-library app.
>>
>> >> > >> > > This is using Eclipse. Exporting a signed apk for the non-library
>> >> > >> > > project does not seem to work either.
>>
>> >> > >> > > It seems like the library is not being imported into the apk, but
>> >> > >> > > it
>> >> > >> > > is not at all obvious why it is not working as everything is
>> >> > >> > > working
>> >> > >> > > fine in the developer view.
>>
>> >> > >> > > Regards,
>>
>> >> > >> > > Michael A.
>>
>> >> > >> > > On May 22, 10:15 pm, Xavier Ducrohet <x...@android.com> wrote:
>>
>> >> > >> > > > There is something very strange here.
>>
>> >> > >> > > > What is MyLibrary.apk?
>>
>> >> > >> > > > I think you may be a bit confused with what libraries are.
>>
>> >> > >> > > > Library projects are handled at compilation time. They are
>> >> > >> > > > *NOT* meant
>> >> > >> > > > to be export as APK (I don't even know how you managed to
>> >> > >> > > > create
>> >> > >> > > > MyLibrary.apk because the tools don't let you do it).
>>
>> >> > >> > > > When you compile an application project that depends on a
>> >> > >> > > > library, the
>> >> > >> > > > code and resources of the library are included in the app
>> >> > >> > > > project's
>> >> > >> > > > apk when you compile it.
>>
>> >> > >> > > > Xav
>>
>> >> > >> > > > On Sat, May 22, 2010 at 4:21 AM, Mark Carter
>> >> > >> > > > <mjc1...@googlemail.com> wrote:
>> >> > >> > > > > When trying to launch an activity, the console gives:
>>
>> >> > >> > > > > Uploading MyApp.apk onto device 'emulator-5554'
>> >> > >> > > > > Installing MyApp.apk...
>> >> > >> > > > > Success!
>> >> > >> > > > > Could not find MyLibrary.apk!
>> >> > >> > > > > Starting activity com.mycompany.MyActivity on device
>> >> > >> > > > > ActivityManager: Starting: Intent {
>> >> > >> > > > > act=android.intent.action.MAIN
>> >> > >> > > > > cat=[android.intent.category.LAUNCHER] cmp=com.mycompany/
>> >> > >> > > > > com.mycompany.MyActivity }
>> >> > >> > > > > Attempting to connect debugger to 'com.mycompany' on port
>> >> > >> > > > > 8612
>>
>> >> > >> > > > > And then the activity fails to start
>> >> > >> > > > > (ClassNotFoundException).
>>
>> >> > >> > > > > This seems to be because of the line:
>>
>> >> > >> > > > > Could not find MyLibrary.apk!
>>
>> >> > >> > > > > Any ideas?
>>
>> >> > >> > > > > On May 22, 11:49 am, Mark Carter <m...@carter.name> wrote:
>> >> > >> > > > >> Great to see the new Android Library Project feature in ADT
>> >> > >> > > > >> 0.9.7.
>>
>> >> > >> > > > >> >>http://developer.android.com/guide/developing/eclipse-adt.html#librar...
>>
>> >> > >> > > > >> However, some things aren't clear to me yet:
>>
>> >> > >> > > > >> 1. In the library project, what does versionCode,
>> >> > >> > > > >> versionName,
>> >> > >> > > > >> packageName now mean? I assume nothing???
>> >> > >> > > > >> 2. The docs state that activities, services etc need to be
>> >> > >> > > > >> declared in
>> >> > >> > > > >> the library project and also the app project. So doesn't
>> >> > >> > > > >> this just
>> >> > >> > > > >> result in a load of duplication? What if the activity is
>> >> > >> > > > >> declared
>> >> > >> > > > >> slightly differently in one to the other?
>> >> > >> > > > >> 3. It would have been incredibly useful to allow library
>> >> > >> > > > >> projects to
>> >> > >> > > > >> reference each other. I'm curious as to why this is not
>> >> > >> > > > >> possible...
>> >> > >> > > > >> 4. If an app references both resources and code in a library
>> >> > >> > > > >> project,
>> >> > >> > > > >> then that library project needs to be added as both a
>> >> > >> > > > >> library and a
>> >> > >> > > > >> project in the app's build path (in eclipse at least) - why
>> >> > >> > > > >> is this?
>> >> > >> > > > >> 5. I'm considering subclassing library project
>> >> > >> > > > >> activities/services in
>> >> > >> > > > >> my app project. Is there any reason not to do this?
>>
>> >> > >> > > > >> --
>> >> > >> > > > >> You received this message because you are subscribed to the
>> >> > >> > > > >> Google
>> >> > >> > > > >> Groups "Android Developers" group.
>> >> > >> > > > >> To post to this group, send email to
>> >> > >> > > > >> android-developers@googlegroups.com
>> >> > >> > > > >> To unsubscribe from this group, send email to
>> >> > >> > > > >> android-developers+unsubscribe@googlegroups.com
>> >> > >> > > > >> For more options, visit this group
>> >> > >> > > > >> athttp://groups.google.com/group/android-developers?hl=en
>>
>> >> > >> > > > > --
>> >> > >> > > > > You received this message because you are subscribed to the
>> >> > >> > > > > Google
>> >> > >> > > > > Groups "Android Developers" group.
>> >> > >> > > > > To post to this group, send email to
>> >> > >> > > > > android-developers@googlegroups.com
>> >> > >> > > > > To unsubscribe from this group, send email to
>> >> > >> > > > > android-developers+unsubscribe@googlegroups.com
>> >> > >> > > > > For more options, visit this group at
>> >> > >> > > > >http://groups.google.com/group/android-developers?hl=en
>>
>> >> > >> > > > --
>> >> > >> > > > Xavier Ducrohet
>> >> > >> > > > Android SDK Tech Lead
>> >> > >> > > > Google Inc.
>>
>> >> > >> > > > Please do not send me questions directly. Thanks!
>>
>> >> > >> > > > --
>>
>> ...
>>
>> plus de détails »
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to android-developers@googlegroups.com
> To unsubscribe from this group, send email to
> android-developers+unsubscribe@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>

--
Xavier Ducrohet
Android SDK Tech Lead
Google Inc.

Please do not send me questions directly. Thanks!

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

No comments:

Post a Comment