Commit Graph

110 Commits

Author SHA1 Message Date
Laurent Sansonetti
df2f85086b make sure we import classes from the core rubymotion package (since we could be subclassing one of them) 2014-12-09 17:55:42 +01:00
Laurent Sansonetti
8bb9981f2e silence jar signer invocation in debug mode (as it prints garbage when using java 7) 2014-12-09 14:56:00 +01:00
Laurent Sansonetti
5865906230 improve error message in case we can’t connect to the device 2014-12-09 03:27:48 +01:00
Laurent Sansonetti
8fe20680da provide the path where libc.so is located, so that we can access C-level functions 2014-12-02 22:59:55 +01:00
Laurent Sansonetti
60cf04cedc provide builtin print-ruby-object / pro command to gdb 2014-12-02 21:51:04 +01:00
Laurent Sansonetti
40f7b45733 enable debug=1: start ndk-gdb in “attach mode”, make sure we won’t quit the rake process on SIGINT, bring back terminal echo on exit 2014-12-02 19:02:16 +01:00
Laurent Sansonetti
41cbedba70 more ndk-gdb work (still not working yet) 2014-12-02 18:11:59 +01:00
Laurent Sansonetti
f6cf3d2507 pass assets directories when generating R (even if it's not required?) 2014-10-29 16:24:59 +01:00
Laurent Sansonetti
1723c9ee63 improve build system to handle .java files (for class extensions) using underscore-based case 2014-10-29 13:40:41 +01:00
Laurent Sansonetti
6876b634ce oops: always generate <service/> tags 2014-10-29 13:35:39 +01:00
Laurent Sansonetti
aee711688c add support for Java class extensions: classes defined in .rb files can be extended in Java, by writing methods in a Foo.java file (where Foo is the name of the class) in a directory that contains .rb files (ex. ‘app/Foo.java’) 2014-10-28 19:40:43 +01:00
Laurent Sansonetti
02fb5ce2be without this line, we will always rebuild classes.dex 2014-10-28 17:51:45 +01:00
Laurent Sansonetti
8c66814ae0 better message 2014-10-28 17:26:33 +01:00
Laurent Sansonetti
30fb3fe861 add app.services to let users expose android services 2014-10-26 22:12:39 +01:00
Laurent Sansonetti
6bac384407 when an exception is raised from a file init function and isn’t caught, print a better message to the user 2014-10-25 00:47:19 +02:00
Laurent Sansonetti
6b0a0176c1 rebuild payload.o if payload.c changed 2014-10-25 00:47:19 +02:00
Laurent Sansonetti
53e49c1443 add app.features to expose <uses-feature ...> elements to the manifest file, cleanup the XML generated code 2014-10-23 17:22:54 +02:00
Laurent Sansonetti
3318d87105 call Ruby init functions within an EH + pass the top-self reference 2014-10-20 12:29:07 +02:00
Eloy Durán
478472308c [rake] Re-instate top-level clean task and refactor into XcodeConfig.
Related to:
* 646cbb1918
* bddc880f98
2014-10-17 12:55:57 +02:00
Laurent Sansonetti
8617f53d17 better init function names, using the sha1 of the full .bc path (sadly we can’t follow what we do for ios/osx as it would require bundling llvm-nm or another tool with the distribution) 2014-10-17 12:40:04 +02:00
Laurent Sansonetti
1749dd4317 unnecessary line 2014-10-17 12:38:10 +02:00
Laurent Sansonetti
bddc880f98 bring back “rake clean” task 2014-10-17 12:37:52 +02:00
Laurent Sansonetti
cd48fb034d better message in case we can't retrieve the API version of the device 2014-10-17 12:05:44 +02:00
Laurent Sansonetti
00c9510d1f generate java.lang.System.loadLibrary() instead of System.loadLibrary() because the later may not work all the time 2014-10-17 00:33:41 +02:00
Laurent Sansonetti
9d5e61262f change app.api_version to return the latest available version except L (which is not stable), introduce app.target_api_version, api_version now maps to minSdkVersion and target_api_version to targetSdkVersion 2014-10-01 13:17:05 +02:00
Laurent Sansonetti
33b7e63372 add app.application_class that can be used to specify a custom Application class 2014-10-01 11:15:46 +02:00
Laurent Sansonetti
3185d47e69 kill the app if the rake task ends (^C) 2014-09-30 16:59:50 +02:00
Laurent Sansonetti
8d0525f494 add support for the R class (thanks to Mark for the patch) 2014-09-29 17:14:43 +01:00
Laurent Sansonetti
517d361894 “rake emulator” now requires a started AVD and will not attempt at creating one 2014-09-16 17:26:28 +09:00
Laurent Sansonetti
9aa2d644cd pass kernel path to REPL, minor refactoring 2014-09-11 17:15:54 +02:00
Laurent Sansonetti
fec985a126 launch the REPL upon “rake device” (or “rake emulator” — haven’t tried that one thought) 2014-09-11 16:17:16 +02:00
Laurent Sansonetti
bcf2883943 pass environment mode and version number to the runtime, minor refactoring 2014-09-11 15:56:23 +02:00
Laurent Sansonetti
510aee6a4d in development mode, include the INTERNET permission as it’s required for the REPL socket 2014-09-11 15:56:23 +02:00
Laurent Sansonetti
85a996e335 export super-less classes to Java (build system patch) 2014-08-24 17:42:39 +02:00
Laurent Sansonetti
ea82921b7e when generating the .java code make sure we don’t export the same method twice (we used to do that in the compiler but it’s best to move this logic to the build system, since multiple ruby files can open the same Java class) 2014-08-24 16:05:26 +02:00
Laurent Sansonetti
21b9318ef8 add app.permissions’ a shortcut that allows uses-permission’ elements to be added to the manifest file 2014-08-22 19:34:21 +02:00
Laurent Sansonetti
70224dc851 make sure we use 'adb -d' since an emulator could be running at the same time 2014-08-14 18:22:26 -04:00
Laurent Sansonetti
8f5c3dce69 before installing an app, verify that the usb-connected device runs an API version higher or equal to the app's one 2014-08-09 21:23:24 +02:00
Laurent Sansonetti
3fe0821c88 Remove configChanges from the manifest.
Gives problems in older versions and also Google recommends using it as a last resort

"Using this attribute should be avoided and used only as a last resort."
http://developer.android.com/guide/topics/manifest/activity-element.html

Patch by Mark Villacampa.
2014-08-09 11:26:44 +02:00
Laurent Sansonetti
ee36b4b967 Use System.loadLibrary() to load the payload. This is what JNI sample apps use.
Line 64:
https://android.googlesource.com/platform/development/+/android-4.4.4_r2/ndk/samples/hello-jni/src/com/example/hellojni/HelloJni.java

This makes RubyMotion work on older Android versions (such as API 8).

Patch by Mark Villacampa.
2014-08-09 11:26:44 +02:00
Laurent Sansonetti
39c8890c08 JDK 7 requires explicitly setting this. Should work in JDK 6 too.
"Caution: As of JDK 7, the default signing algorithim has changed, requiring you to specify the signature and digest algorithims (-sigalg and -digestalg) when you sign an APK."

Google Cache:
http://webcache.googleusercontent.com/search?q=cache:OjyaP-Zoz-MJ:developer.android.com/tools/publishing/app-signing.html+&cd=1&hl=es&ct=clnk&client=safari

(Patch by Mark Villacampa)
2014-08-09 11:26:44 +02:00
Watson
9ff1dab9eb fix zipalign path 2014-08-08 23:11:54 +09:00
Watson
ed5521ad56 [android] fix an error which /usr/bin/keytool causes if '~/.android' is not existed
This should fix the following error

    /usr/bin/keytool -genkeypair -alias androiddebugkey -keypass android -keystore "/Users/watson/.android/debug.keystore" -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=ja_JP.UTF-8
    keytool エラー: java.io.FileNotFoundException: /Users/watson/.android/debug.keystore (No such file or directory)
2014-08-01 12:40:14 +09:00
Laurent Sansonetti
51dc4dab9f update path of zipalign tool 2014-06-27 19:11:14 +02:00
Laurent Sansonetti
6d662e4d21 re-generate classes.dex if one of the vendored jar is newer 2014-06-11 00:28:59 +02:00
Watson
591a616a68 build an app even if resources and assets directories does exists
This should fix the following error.
Because, now, android samples does not have resources and assets directories.

$ rake device
   Compile ./app/main_activity.rb
    Create ./build/Development-18/lib/armeabi/libpayload.so
    Create ./build/Development-18/lib/armeabi/gdbserver
    Create ./build/Development-18/lib/armeabi/gdb.setup
    Create ./build/Development-18/AndroidManifest.xml
ERROR: resource directory './resources' does not exist
rake aborted!
2014-05-29 05:03:34 -07:00
Laurent Sansonetti
d2b5ec0bfc fix rake start_avd’ task to honor the avd’ env variable which can be used to override the default AVD configuration that should be used 2014-05-27 09:56:35 -07:00
Laurent Sansonetti
bbe51897e7 add app.version_name, app.version_code, and app.version(code, name) to specify app versioning when generating the manifest file 2014-05-20 12:01:08 +02:00
Laurent Sansonetti
66f4c8cff8 add `rake release’ task which creates an apk build suitable for play store submissions, fix build to use a distinct directory for development/release build objects 2014-05-19 16:30:29 +02:00
Laurent Sansonetti
4549026078 damnit 2014-05-19 10:52:11 +02:00