Hi Raymond,

Thanks for taking the time.  cppFlags += 
"-DVERSION=\"${rootProject.getVersion().toString()}\"".toString() does 
indeed fix the problem.  Some of the third party libs we depend upon aren't 
64bit compatible, so I'll delay the full dive until 64 bit is working.
I have a question, if I have a hybrid environment (i.e. the build.gradle 
for one of my modules (a library) uses the experimental gradle ndk, is 
there a way that this could work with the rest of the project using the 
more stable 1.3r2?  Or does the entire dependency chain have to be one the 
same gradle?)

Also, I did manage to get gtest (unit testing) working in the new 
experimental, it's using a custom task dependency.  Are there plans on 
putting an official way of doing gtest in a nicely provided call?

Thanks,
Steve

On Friday, July 10, 2015 at 8:55:25 AM UTC-7, Raymond Chiu wrote:
>
> Hi Steven,
>
> I work on the plugin.  I made some of the trivial corrections in the 
> documentation and will correct the rest soon.  Thanks for pointing them 
> out.  I hope to address some of your other concerns
>
> "First it's still quite sad that there is no mechanism to use older 
> library builds with pre-existing .mk files.  I get around this as I always 
> have by creating own task that calls ndk-build."
>
> We are working on it.
>
> "cppFlags += " -I" + file('../../../Common').absolutePath
> will result in compiler errors that the file or directory <path>/Common is 
> not found and it wont compile.  However, remove the space prior to the -I 
> flag and it's all good.  I had to remove all spaces on front and back of 
> all cflags and do a separate flag per line with cppFlags += <newFlag>"
>
> Filed 
> https://code.google.com/p/android/issues/detail?id=179497&thanks=179497
>
> "android.buildTypes { } should include isDebuggable = true and 
> isJniDebuggable = true."
>
> There are some changes to the DSL that will address this in the next minor 
> release.
>
> "I can get gradlew to run the compiler, but the GUI doesn't actually run 
> the ndk build task.  If I run the gradle task from the GUI :app:build then 
> it does build the ndk build task but F9 gives me everything but."
>
> I will look into this.
>
> "For the life of me I couldn't get cppFlags += 
> "-DVERSION=\"${rootProject.getVersion().toString()}\"" to work.  Am I doing 
> something wrong with it?"
>
> Is your error "org.codehaus.groovy.runtime.GStringImpl cannot be cast to 
> java.lang.String"?  If so, you can workaround it by adding .toString() to 
> the GString for now. i.e. cppFlags += 
> "-DVERSION=\"${rootProject.getVersion().toString()}\"".toString().  If not, 
> please let me know what error did you get.
>
> "Also should note that setting abiFilters has no barring on what will be 
> compiled.  The NDK will try to compile all abiFilters no matter what."
>
> Known issue: https://code.google.com/p/android/issues/detail?id=177337
>
> Thanks again for the feedback!
>
> Raymond
>
> On Thursday, July 9, 2015 at 6:10:17 PM UTC-7, Steven Winston wrote:
>>
>> It's very pleasant to see Google finally release this.
>>
>> First it's still quite sad that there is no mechanism to use older 
>> library builds with pre-existing .mk files.  I get around this as I always 
>> have by creating own task that calls ndk-build.
>>
>> Anyway, something I wanted to point out:  
>> http://tools.android.com/tech-docs/new-build-system/gradle-experimental 
>> says as an example to use toolchainVersion = 3.4 for clang and r10e for the 
>> ndk is required.  There is no 3.4 toolchain version of clang in r10e.
>>
>> Next, should mention that if users wish to use more than one srcDir for 
>> jni, use the srcDirs property and an arrayList. (i.e. 
>> android.sources {
>>         main {
>>             jni {
>>                 source {
>>                     srcDirs = [file('../../Android').absolutePath, 
>> file('../../../Common').absolutePath ]
>>                 }
>>             }
>>         }
>>     }
>>
>> Also, apply plugin: 'com.android.model.library' should be somewhere in 
>> there as an option in the docs.
>>
>> CFlags and cppFlags have very similar oddities:
>> cppFlags += " -I" + file('../../../Common').absolutePath
>> will result in compiler errors that the file or directory <path>/Common 
>> is not found and it wont compile.  However, remove the space prior to the 
>> -I flag and it's all good.  I had to remove all spaces on front and back of 
>> all cflags and do a separate flag per line with cppFlags += <newFlag>
>>
>> I can get gradlew to run the compiler, but the GUI doesn't actually run 
>> the ndk build task.  If I run the gradle task from the GUI :app:build then 
>> it does build the ndk build task but F9 gives me everything but.
>>
>> armeabi-v7 should be armeabi-v7a
>>
>> android.buildTypes { } should include isDebuggable = true and 
>> isJniDebuggable = true.
>>
>> For the life of me I couldn't get cppFlags += 
>> "-DVERSION=\"${rootProject.getVersion().toString()}\"" to work.  Am I doing 
>> something wrong with it?
>>
>> splits should now be android.splits <-- not listed.  It would be nice to 
>> have a better way of defining abiFilters to only include what's asked for 
>> (i.e. set universalAPK to false elsewhere).  Also should note that setting 
>> abiFilters has no barring on what will be compiled.  The NDK will try to 
>> compile all abiFilters no matter what.
>>
>> That's as far as I could test.  Going back to deprecated ndk scheme until 
>> the next version.  Thought I'd give feedback.
>>
>>
> On Thursday, July 9, 2015 at 6:10:17 PM UTC-7, Steven Winston wrote:
>>
>> It's very pleasant to see Google finally release this.
>>
>> First it's still quite sad that there is no mechanism to use older 
>> library builds with pre-existing .mk files.  I get around this as I always 
>> have by creating own task that calls ndk-build.
>>
>> Anyway, something I wanted to point out:  
>> http://tools.android.com/tech-docs/new-build-system/gradle-experimental 
>> says as an example to use toolchainVersion = 3.4 for clang and r10e for the 
>> ndk is required.  There is no 3.4 toolchain version of clang in r10e.
>>
>> Next, should mention that if users wish to use more than one srcDir for 
>> jni, use the srcDirs property and an arrayList. (i.e. 
>> android.sources {
>>         main {
>>             jni {
>>                 source {
>>                     srcDirs = [file('../../Android').absolutePath, 
>> file('../../../Common').absolutePath ]
>>                 }
>>             }
>>         }
>>     }
>>
>> Also, apply plugin: 'com.android.model.library' should be somewhere in 
>> there as an option in the docs.
>>
>> CFlags and cppFlags have very similar oddities:
>> cppFlags += " -I" + file('../../../Common').absolutePath
>> will result in compiler errors that the file or directory <path>/Common 
>> is not found and it wont compile.  However, remove the space prior to the 
>> -I flag and it's all good.  I had to remove all spaces on front and back of 
>> all cflags and do a separate flag per line with cppFlags += <newFlag>
>>
>> I can get gradlew to run the compiler, but the GUI doesn't actually run 
>> the ndk build task.  If I run the gradle task from the GUI :app:build then 
>> it does build the ndk build task but F9 gives me everything but.
>>
>> armeabi-v7 should be armeabi-v7a
>>
>> android.buildTypes { } should include isDebuggable = true and 
>> isJniDebuggable = true.
>>
>> For the life of me I couldn't get cppFlags += 
>> "-DVERSION=\"${rootProject.getVersion().toString()}\"" to work.  Am I doing 
>> something wrong with it?
>>
>> splits should now be android.splits <-- not listed.  It would be nice to 
>> have a better way of defining abiFilters to only include what's asked for 
>> (i.e. set universalAPK to false elsewhere).  Also should note that setting 
>> abiFilters has no barring on what will be compiled.  The NDK will try to 
>> compile all abiFilters no matter what.
>>
>> That's as far as I could test.  Going back to deprecated ndk scheme until 
>> the next version.  Thought I'd give feedback.
>>
>>
> On Thursday, July 9, 2015 at 6:10:17 PM UTC-7, Steven Winston wrote:
>>
>> It's very pleasant to see Google finally release this.
>>
>> First it's still quite sad that there is no mechanism to use older 
>> library builds with pre-existing .mk files.  I get around this as I always 
>> have by creating own task that calls ndk-build.
>>
>> Anyway, something I wanted to point out:  
>> http://tools.android.com/tech-docs/new-build-system/gradle-experimental 
>> says as an example to use toolchainVersion = 3.4 for clang and r10e for the 
>> ndk is required.  There is no 3.4 toolchain version of clang in r10e.
>>
>> Next, should mention that if users wish to use more than one srcDir for 
>> jni, use the srcDirs property and an arrayList. (i.e. 
>> android.sources {
>>         main {
>>             jni {
>>                 source {
>>                     srcDirs = [file('../../Android').absolutePath, 
>> file('../../../Common').absolutePath ]
>>                 }
>>             }
>>         }
>>     }
>>
>> Also, apply plugin: 'com.android.model.library' should be somewhere in 
>> there as an option in the docs.
>>
>> CFlags and cppFlags have very similar oddities:
>> cppFlags += " -I" + file('../../../Common').absolutePath
>> will result in compiler errors that the file or directory <path>/Common 
>> is not found and it wont compile.  However, remove the space prior to the 
>> -I flag and it's all good.  I had to remove all spaces on front and back of 
>> all cflags and do a separate flag per line with cppFlags += <newFlag>
>>
>> I can get gradlew to run the compiler, but the GUI doesn't actually run 
>> the ndk build task.  If I run the gradle task from the GUI :app:build then 
>> it does build the ndk build task but F9 gives me everything but.
>>
>> armeabi-v7 should be armeabi-v7a
>>
>> android.buildTypes { } should include isDebuggable = true and 
>> isJniDebuggable = true.
>>
>> For the life of me I couldn't get cppFlags += 
>> "-DVERSION=\"${rootProject.getVersion().toString()}\"" to work.  Am I doing 
>> something wrong with it?
>>
>> splits should now be android.splits <-- not listed.  It would be nice to 
>> have a better way of defining abiFilters to only include what's asked for 
>> (i.e. set universalAPK to false elsewhere).  Also should note that setting 
>> abiFilters has no barring on what will be compiled.  The NDK will try to 
>> compile all abiFilters no matter what.
>>
>> That's as far as I could test.  Going back to deprecated ndk scheme until 
>> the next version.  Thought I'd give feedback.
>>
>>

-- 
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