mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Added an "app" subfolder to all of the native/java directories and updated modules/juce_core/native/java/README.txt
This commit is contained in:
parent
d6300966df
commit
360be3400d
14 changed files with 34 additions and 11 deletions
|
|
@ -1,19 +1,42 @@
|
|||
The java code in the module's native/java subfolders were used to generate dex byte-code in various places in the JUCE framework. These are the steps required to re-generate the dex byte-code from any java source code inside the native/java subfolders:
|
||||
The Java code in the module's native/java subfolders have been used to generate
|
||||
dex byte-code in various places in the JUCE framework. These are the steps
|
||||
required to re-generate the dex byte-code from any Java source code inside the
|
||||
native/java subfolders:
|
||||
|
||||
1. Create a new JUCE android project with the minimal sdk version which is required for the java source code you wish to compile.
|
||||
2. Move the the .java files that you wish to create source code for, into the module's native/javacore/app folder. Remember that .java files need to be in nested sub-folders which resemble their package, i.e. a Java class com.roli.juce.HelloWorld.java should be in the module's native/javacore/app/com/roli/juce folder.
|
||||
3. Build your project with AS and run. The app will now use the source code in the folder creates in step 2 - so you can debug your java code this way.
|
||||
4. Once everything is working, rebuild your app in release mode.
|
||||
5. Go to your app's Builds/Android folder. Inside there you will find app/build/intermediates/classes/release_/release. Inside of that folder, you will find all your java byte-code compiled classes. Remove any classes that you are not interested in (typically you'll find Java.class, JuceApp.class and JuceSharingContentProvider.class which you will probably want to remove).
|
||||
6. Inside of app/build/intermediates/classes/release_/release execute the following dx command:
|
||||
1. Create a new JUCE android project with the minimal sdk version which is
|
||||
required for the Java source code you wish to compile.
|
||||
|
||||
<path-to-your-android-sdk>/build-tools/<latest-build-tool-version>/dx --dex --verbose --min-sdk-version=<your-min-sdk-of-your-classes> --output /tmp/JavaDexByteCode.dex .
|
||||
2. If you are creating byte-code for new .java files, move the new files into
|
||||
the native/javacore/app folder of the module, or create one if it doesn't
|
||||
exist. Remember that .java files need to be in nested sub-folders which
|
||||
resemble their package, i.e. a Java class com.roli.juce.HelloWorld.java
|
||||
should be in the module's native/javacore/app/com/roli/juce folder.
|
||||
If you wish to modify existing .java files in the JUCE modules then just rename
|
||||
native/java to native/javacore.
|
||||
|
||||
3. Build your project with AS and run. The app will now use the source code in
|
||||
the folder created in step 2 so you can debug your Java code this way.
|
||||
|
||||
Replace <your-min-sdk-of-your-classes> with the minimal sdk version you used in step 1.
|
||||
4. Once everything is working rebuild your app in release mode.
|
||||
|
||||
5. Go to your app's Builds/Android folder. Inside there you will find
|
||||
build/intermediates/javac/release_Release/compileRelease_ReleaseJavaWithJavac/classes.
|
||||
Inside of that folder, you will find all your Java byte-code compiled classes.
|
||||
Remove any classes that you are not interested in (typically you'll find
|
||||
Java.class, JuceApp.class and JuceSharingContentProvider.class which you will
|
||||
probably want to remove).
|
||||
|
||||
6. Inside of app/build/intermediates/classes/release_/release execute the
|
||||
following dx command:
|
||||
|
||||
<path-to-your-android-sdk>/build-tools/<latest-build-tool-version>/dx --dex --verbose --min-sdk-version=<your-min-sdk-of-your-classes> --output /tmp/JavaDexByteCode.dex .
|
||||
|
||||
(Replace <your-min-sdk-of-your-classes> with the minimal sdk version you used in step 1.)
|
||||
|
||||
7. gzip the output:
|
||||
|
||||
gzip /tmp/JavaDexByteCode.dex
|
||||
gzip /tmp/JavaDexByteCode.dex
|
||||
|
||||
8. The output /tmp/JavaDexByteCode.dex.gz is now the byte code that can be included into JUCE. You can use the Projucer's BinaryData generator functionality to get this into a convenient char array like form.
|
||||
8. The output /tmp/JavaDexByteCode.dex.gz is now the byte code that can be
|
||||
included into JUCE. You can use the Projucer's BinaryData generator
|
||||
functionality to get this into a convenient char array like form.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue