bill-auger / av-caster

A light-weight native gStreamer GUI for screencast, webcam, and audio recording and streaming
Other
87 stars 15 forks source link

Setup Android Studio Project #52

Closed 06needhamt closed 8 years ago

06needhamt commented 8 years ago

This pull request allows av-caster to be compiled as an android application that will run on API22+. As far as i can tell i have set everything up correctly but it seems it has also changed a lot of files that i did not touch, so be sure to try this out before merging incase it breaks anything. I closed my previous pull request because i couldf not get it to rebase without many conflicts.

bill-auger commented 8 years ago

im not sure how you went about this but this PR is more conflicting than the last one - from what i see it looks like you used the projucer in this process yea? it can be a bit tricky configuring JUCE projects at first - most of the conflicts i see here are simply a misunderstanding of JUCE project management - i really did not expect you would have any success so quickly otherwise i could have explained a bit how JUCE project management works - i would have also asked that you read the CONTRIBUTING.md before sending any PRs

the largest source of conflict here is evident in the changes to the file 'AvCaster.jucer' - this shows that you downloaded JUCE from their website and set the av-caster project to use your local copy of JUCE which is evidently a different version - a version that travis does not have and so is the most likely reason for travis to be rejecting this PR - this av-caster repo is self-contained and includes all of the JUCE libraries that it needs in the JuceLibraryModules/ directory - more importantly tho - the most relevant bit of the CONTRIBUTING.md in this case would be that i am using a customized version of the projucer that builds more sophisticated GNU/Makefiles and so even if you had done everything else correctly the GNU/Makefile would still have been reverted to the simpler default form

generally you must not edit any existing files under the Builds directory and generally any additional files under the Builds directory created by you IDE would not be committed to the repo - any changes that need to be made to the project in order to get it to compile such as compiler flags, library locations, even support files must be specified in the projucer or else they would be clobbered on the next save - in short, almost nothing should be added to git that the projucer did not auto-generate - even most source file are originally created by the jucer

most of the remaining needlessly modified files are simply that your IDE has re-saved them with windows line endings - perhaps your IDE has an auto-save feature? - bad idea IMHO - for example there is no reason any files in the Packaging directory should have been modified or accessed at all because the JUCE project manager does not even know they exist - in the simplest case the only files that would strictly need to be in the diff here are AvCaster.jucer and the auto-generated files under the Build/ directories

i think it is quite nifty that you have taken it up to do this and i am willing to help you get this diff into something sane that could be merged - perhaps we should arrange a pair-programming seesion sometime - all i can say for now is that if you had used my customized projucer and avoided saving any files that you did not actually modify then i think the diff would more reasonably reflect what actually needed to change

bill-auger commented 8 years ago

@06needhamt -

i took the jucer file you made and re-generated the android project from it on a new branch 'droid' - do a fresh clone of the 'droid' branch and let me know if it compiles to the same state as you have in this PR

noticing there was no reference to gStreamer in the jucer there is surely some work yet to do but this looks like a good start

06needhamt commented 8 years ago

I can't get it to build the module path is invalid because i can't build juce

bill-auger commented 8 years ago

you do not need to build anything in the juce repo in order to build a juce app - you do not even need it available anywhere - everything needed to build av-caster is included in the av-caster repo - so i am not suggesting you to build the Projucer today - you could erase all of juce for now - simply make a fresh clone of the av-caster 'droid' and try to build av-caster as is

if as you say you had av-caster compiling yesterday then it should build now in exactly the same way - except that (ideally) you should not need to configure anything in your IDE manually - the changes you made in the Projucer yesterday should be sufficient to generate all of the necessary project files to allow your IDE to compile av-caster out-of-the-box

again this is probably not yet true but that is what the Projucer is made for and this should be possible with some further adjustments

06needhamt commented 8 years ago

I now encounter the following error when trying to generate the android studio project error And the project no longer builds.

06needhamt commented 8 years ago

Fixed it i had to change the main class name to org.bill.auger.AvCaster and move the project to a shorter path it is now building like yesterday!

bill-auger commented 8 years ago

ok this is progress then - i am still not sure what exactly you have - when you say it is building i assume this means it is creating an executable - but the Gstreamer class is calling into the libgstreamer library and this is not specified in the Projucer - are you actually linking to some version of gstreamer somehow ? - what happens when you run the executable ? does the GUI launch properly

bill-auger commented 8 years ago

ive merged the 'droid' branch into 'development' - if you force pull now and commit back to your fork then the diff of this PR should clear and any further changes you make would be more clearly isolated