Sitata / titanium-google-analytics

Google analytics for Appcelerator Titanium
MIT License
92 stars 47 forks source link

App using analytics.google fails to build on Android for 5.0.0.GA #48

Open shodanuk opened 8 years ago

shodanuk commented 8 years ago

Environment:

Mac OSX 10.10.5 Ti CLI 5.0.4 Ti SDK 5.0.0.GA Targetting Android SDK 21 Android build tools 22.0.1

[ERROR] Failed to run dexer:
[ERROR]
[ERROR] Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
[ERROR]
[ERROR] UNEXPECTED TOP-LEVEL EXCEPTION:
[ERROR] java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/maps/LocationSource;
[ERROR]         at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:122)
[ERROR]         at com.android.dx.dex.file.DexFile.add(DexFile.java:161)
[ERROR]         at com.android.dx.command.dexer.Main.processClass(Main.java:732)
[ERROR]         at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
[ERROR]         at com.android.dx.command.dexer.Main.access$300(Main.java:83)
[ERROR]         at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
[ERROR]         at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
[ERROR]         at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
[ERROR]         at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
[ERROR]         at com.android.dx.command.dexer.Main.processOne(Main.java:632)
[ERROR]         at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
[ERROR]         at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
[ERROR]         at com.android.dx.command.dexer.Main.run(Main.java:246)
[ERROR]         at com.android.dx.command.dexer.Main.main(Main.java:215)
[ERROR]         at com.android.dx.command.Main.main(Main.java:106)
[ERROR] 1 error; aborting

Removing analytics.google module results in a successful build.

astjohn commented 8 years ago

Hi @shodanuk. Thanks for the report. Was this run on your own app or on the test app in the repo? Are you able to update and run the test app for 5.0.0.GA?

shodanuk commented 8 years ago

Hi,

The test app in the repo builds ok but then crashes as soon as it starts with the following (both before & after updating the ti sdk in tiapp.xml):

[ERROR] TiApplication: (KrollRuntimeThread) [47,180] Sending event: exception on thread: KrollRuntimeThread msg:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/analytics.google.test-1/base.apk"],nativeLibraryDirectories=[/data/app/analytics.google.test-1/lib/arm, /vendor/lib, /system/lib]]] couldn't find "libanalytics.google.so"; Titanium 3.5.0,2015/01/12 15:33,0014f83
[ERROR] TiApplication: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/analytics.google.test-1/base.apk"],nativeLibraryDirectories=[/data/app/analytics.google.test-1/lib/arm, /vendor/lib, /system/lib]]] couldn't find "libanalytics.google.so"
[ERROR] TiApplication:  at java.lang.Runtime.loadLibrary(Runtime.java:366)
[ERROR] TiApplication:  at java.lang.System.loadLibrary(System.java:989)
[ERROR] TiApplication:  at org.appcelerator.kroll.runtime.v8.V8Runtime.loadExternalModules(V8Runtime.java:132)
[ERROR] TiApplication:  at org.appcelerator.kroll.runtime.v8.V8Runtime.initRuntime(V8Runtime.java:99)
[ERROR] TiApplication:  at org.appcelerator.kroll.KrollRuntime.doInit(KrollRuntime.java:185)
[ERROR] TiApplication:  at org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:109)
[ERROR] AndroidRuntime: FATAL EXCEPTION: KrollRuntimeThread
[ERROR] AndroidRuntime: Process: analytics.google.test, PID: 17321
[ERROR] AndroidRuntime: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/analytics.google.test-1/base.apk"],nativeLibraryDirectories=[/data/app/analytics.google.test-1/lib/arm, /vendor/lib, /system/lib]]] couldn't find "libanalytics.google.so"
[ERROR] AndroidRuntime:     at java.lang.Runtime.loadLibrary(Runtime.java:366)
[ERROR] AndroidRuntime:     at java.lang.System.loadLibrary(System.java:989)
[ERROR] AndroidRuntime:     at org.appcelerator.kroll.runtime.v8.V8Runtime.loadExternalModules(V8Runtime.java:132)
[ERROR] AndroidRuntime:     at org.appcelerator.kroll.runtime.v8.V8Runtime.initRuntime(V8Runtime.java:99)
[ERROR] AndroidRuntime:     at org.appcelerator.kroll.KrollRuntime.doInit(KrollRuntime.java:185)
[ERROR] AndroidRuntime:     at org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:109)
shodanuk commented 8 years ago

Interestingly, if I add a reference to ti.map in the tiapp.xml of your test project, I get the dexer error I originally reported.

Then if I remove the analytics.google reference but leave the ti.map ref, it builds ok.

Looks like it might be a conflict with ti.map?

kerberosargos commented 8 years ago

I don't compile my project because of same issue. Older versions of your modules don't compile too.

kerberosargos commented 8 years ago

Yes when I remove ti.admob module from my project it complied.

kerberosargos commented 8 years ago

@astjohn Looks like it might be a conflict with all ti.*\ modules. example: ti.admob - ti.dfp - ti.map

kerberosargos commented 8 years ago

@shodanuk do you know any alternative analytics module working with sdk 5.0

shodanuk commented 8 years ago

@kerbooo I don't about any other working ones but you might find others on http://gitt.io.

@astjohn I'm afraid my native skills aren't up to much but there's anything else I can do to help debug this, please let me know.

kerberosargos commented 8 years ago

Hi @shodanuk I solved my problem. I get help from this link https://developer.appcelerator.com/question/141306/how-can-i-know-my-titanium-module-path

I am using ti.admob and this module in my project. I think you are using Mac OS. Installed modules path on mac os like this /Users//Library/Application Support/Titanium/modules

Find your modules which are using on your project. Every modules has got "lib" folder.

This module use a jar file which name is "google-play-services.jar"

Looks like it might be a conflict with if your other module use same or like "google-play-services-base.jar" files. May be you can delete or use same "google-play-services.jar" for your project.

shodanuk commented 8 years ago

@kerbooo Hey. Thanks for the tip. Unfortunately, I've already tried this but it didn't work for me. Ti.map doesn't use the standard google-play-services.jar anymore but now has two libs: google-play-services-base.jar & google-play-services-map.jar. I tried dropping in google-play-services-base.jar but that didn't seem to work.

kerberosargos commented 8 years ago

@shodanuk There was same thing for me I found "ti.admob" 's older version which using "google-play-services.jar" I solved with this version. May be you can find analytics module which use "google-play-services-base.jar"

shodanuk commented 8 years ago

@kerbooo Maybe. I've tried most of the others but they weren't as good as this one. Hoping it gets fixed soon :)

astjohn commented 8 years ago

Hey guys. Apologies because I've been swamped recently, but perhaps I can take a deeper look this weekend. I was also one of the authors for the recent drawing additions to Ti.Map and so it's in Sitata's best interest to make sure the two modules play nice with each other. Different play services files between modules has always been a struggle and it's something I hope the Appcelerator team can address in the future.

jpriebe commented 8 years ago

You might want to look at my pull request, which gets into issues of google play services compatibility. I think this is one of the biggest problems Titanium has on the android platform. It's getting harder and harder to build an android app and not run into this problem.

vladvoinescu commented 8 years ago

@kerbooo I have exactly the same problem as you had but I cannot seem to solve it. Can you please tell me what exactly to rename and what should be the new name of the jar?

kerberosargos commented 8 years ago

@vladcvoinescu Hi I am using ti.module and this module in my project. If you are using same modules too. You can import ti.admob module's 2.1.4 version and this module's lasted version. So yo don't do to need anything more and any fix.

ti.module's link: https://github.com/appcelerator-modules/ti.admob/releases/tag/android-2.1.4

vladvoinescu commented 8 years ago

Ok, after about 8 hours of trial and error during a few days, I eventually fixed it by removing all the jars that were in the lib folder of the modules that I use (admob, google analytics) and replacing them with the complete one from the android sdk tools (C:\android-sdk-win\extras\google\google_play_services\libproject\google-play-services_lib\libs). If you decide to follow this method, bare in mind that you will have to delete the modules from C:\ProgramData\Titanium\modules\android first, then recompile them using the complete GPS jar (- in case you are deploying the modules for Titanium SDK, if not, you will probably have to delete the modules from your project).

@kerbooo Thank you for the fast reply. I should have posted earlier and maybe would've won some hours with your help :) I used the aforementioned method and it worked for me.

kerberosargos commented 8 years ago

@vladcvoinescu my native skills is not good. Do you share your modified modules with me?

kerberosargos commented 8 years ago

@vladcvoinescu When I was using MAC OSX, lasted titanium sdk was 5.xx I installed Appcelerator Studio for windows from Appcelerataor Platform, Studio is installing mobilesdk-3.5.1RC is it normal? And studio doesn't update anything after installation finished.

shodanuk commented 8 years ago

I only have two modules in my app that include Google Play Services: ti.map & analytics.google. I removed the gps jar from the analytics.google module's lib folder but unfortunately I am now seeing what can only be described as one of the biggest stack traces I've ever encountered.

Please see: http://pastebin.com/5DDPBBER

Again, removing the analytics.google module "fixes" this.

There definitely seems to be a compatibility issue between analytics.google & ti.map and I'm also now wondering if the problem would also occur between ti.map & any other module that uses google play services.

jpriebe commented 8 years ago

This sort of google play services conflict is becoming a really big problem for Titanium developers.

I think you can solve this problem using the technique that I outline here (in my last couple of comments).

The bottom line is that I think you're going about things backwards. I think you should use the google play services jar from analytics.google, not the one from ti.map. IIRC, the one shipped with ti.map is not complete; it is stripped down to just the code that is required for google maps. So you don't want to use that one with analytics. Use the full JAR shipped with analytics with the ti.map module.

I realize that means modifying a module that is shipped by Appcelerator, but I can tell you that it has worked for us so far. I am using my forked version of titanium-google-analytics, which I have updated to the latest google play services (or at least it was the latest when I did that a month ago).

shodanuk commented 8 years ago

Hmm ok. The reason I pulled out the analytics.google google play services lib included with ti.map appears to have been split into 2 parts with slightly different names: "google-play-services-base.jar" + "google-play-services-map.jar". @jpriebe, Presumably this is what you're referring to when you say the version of google play services that ships with ti.map is "stripped down"?

jpriebe commented 8 years ago

Yes, that's what I mean. See this article for details about how developers can now selectively use individual APIs from Google Play Services. But if you only have the base and the map API JAR files, you won't have the analytics code, so it's no big surprise that titanium-google-analytics isn't working.

Thus I suggest just getting all the modules synced up on a single google play services JAR file that includes enough for all of them. It's a royal PITA, but I don't know a better way around it.

beaurepair commented 8 years ago

I've had this same problem, and my workaround for now was to revert ti.cloudpush back to v 3.3.8 and ti.map back to 2.3.1 (both the second most recent versions). They must be using updated gps jar.

jabele commented 8 years ago

I can confirm that removing the google-play .jar files from all the non Google Analytics module lib folders and replacing them with the google-play-services.jar from the Google Analytics lib folder works great. It appears Google Analytics has a full version and most other modules use a smaller .jar file. Having just one that is all-encompassing and keeping them in sync seems to work great so far.

ciauri commented 8 years ago

Having the same issue. Attempted jabele's solution which allows the dexer to complete but then results in an insta-crash on app launch.

I copied the google-play-services.jar from the GA module lib folder, deleted the partial gps jars from the ti.map lib folder, and replace them with the single google-play-services.jar.

Now I get a lovely: java.lang.NoClassDefFoundError: ti.map.TiUIMapView at ti.map.ViewProxy.createView(ViewProxy.java:79)

ciauri commented 8 years ago

An entire day of troubleshooting and I figured out a solution!

What I ended up doing was replacing one of the google-play-services.jar with the official jar that you can download from the Extras section of the Google SDK manager (./android) tool. Once that was done, I deleted all other gps jars (and portions of the same jar) from other modules that may contained it.

The last step of this process is a bit more convoluted: Each of the add-on modules have a platform/android/res/ that contains a version.xml file inside of which has a line with google_play_services_version and an integer. All you have to do is change that value to the correct gps version and you're set!

The only drawback to this approach is that it will likely cause you to hit your 64K Dalvik references limit since you're importing the entirety of the Google Play Services jar. I'm sure there is a way to work around that, but this solution works for my use case.

Good luck!

soumyakantikar commented 8 years ago

After going through the link which @jpriebe had shared, which states the separation of the Google Play libraries into smaller parts, there is something for analytics. What I was wondering is that instead of using the entire google-play-service JAR, can we not use the google-play-service-base and google-play-service-analytics instead? I have not tried it, but just a thought which I wanted to share. One such link to the JAR file is, https://github.com/dandar3/android-google-play-services-analytics. I do not know the version number of it though.

astjohn commented 8 years ago

@soumyakantikar This is 100% the best approach if possible. I realize I've been out of touch lately, but I've been completely swamped. If someone can attempt this and make a proper pull request, I'm all for it. Anything moving forward should be backwards compatible to the lower Titanium API's. i.e. see if it will work with the minimum Titanium API that's currently specified.

soumyakantikar commented 8 years ago

I will work on this in the weekend and update as to whether it is working or not. I have had posted a query in StackOverflow too, where Fokke has responded. If anyone is interested, then you can follow up. There is a TIMOD ticket also open.

http://stackoverflow.com/questions/35731035/android-module-with-google-play-conflict-during-build

soumyakantikar commented 8 years ago

After adding google-play-services-analytics.jar to the module, we are still getting the dex error. For testing, if we remove the base.jar from the lib folder of CloudPush, then in that case the dex error is not coming. Hence, there are functions which are present in both base.jar and in the analytics.jar. As Fokke, mentioned I guess, there is no other way, as of now, than to remove the JAR files from all the modules than one so that the duplicate issue is not generated. I will still continue to see if there is any other process.

soumyakantikar commented 8 years ago

When using the proper google-play-services-analytics.jar, then the dex issue gets resolved and data is also posted into Google Analytics site. I am still testing the module with other Ti Module (I am only testing it with Cloud Push). Once I am satisfied with the testing, I will create a pull request and then @astjohn can look into it. I will share the entire details. Keep you all posted.

annamf commented 8 years ago

I've created a new module project with your java files to check if the problem can be produced by the project, but no. The problem is the same.

If I introduce 2 different google_play_services.jar files, Appcelerator tells me. But in this case I haven't got this error.

The others modules that I'm using are: ti.map, facebook, ti.cloud.

I think the problem is caused by ti.map and ti.cloud because they use google_play_services_base.jar, that include some packets that are included at google_play_services.jar. But I can't include only google_play_services_base.jar in this project because that libary doesn't include analytics packets. Any idea?

Basically, that's the problem. I need to extract google_play_services_analytics.jar or something like this, that only contains analytics packets. And the problem will be resolved.

I need to solve this quickly, because my boss.

My error is in both modules (yours & mine):

Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zzrn;
[ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zzrp;
[ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zzro;
[ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zzrl;
[ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zzrm;
[ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/common/zzc;
[ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/common/ConnectionResult;
[ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/common/zza;
[ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/common/Scopes;
annamf commented 8 years ago

The temporary solution for me is:

1.- Download ti.map master from gitHub 2.- Change google-play-services-base.jar and google-play-services-map.jar --> for google.play-services.jar (the same that analytics.google project) 3.- Change in version.xml the number 7571000 --> to 6171000 4.- Compile the module

Then, the two libraries can work together.

soumyakantikar commented 8 years ago

@annamf Yes, this approach will also work. Also there is a google-play-services-analytics.jar which contains APIs related to analytics only.

annamf commented 8 years ago

@soumyakantikar Sorry, It doesn't work. Ti.map doesn't work with the google-play-services.jar some classes are missing. Where can I find the google-play-services-analytics.jar??? or another google-play-services.jar that includes all the libraries about maps??

AdamLVC commented 8 years ago

Hi all. I seem to be experiencing a similar issue, but I am only using the singular Analytics module, not the map one. This is the error message i'm getting:

[ERROR] :  AndroidRuntime: FATAL EXCEPTION: KrollRuntimeThread
[ERROR] :  AndroidRuntime: Process: com.****, PID: 8783
[ERROR] :  AndroidRuntime: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.****-1/base.apk"],nativeLibraryDirectories=[/data/app/com.****-1/lib/arm, /vendor/lib, /system/lib]]] couldn't find "libanalytics.google.so"
[ERROR] :  AndroidRuntime:  at java.lang.Runtime.loadLibrary(Runtime.java:366)
[ERROR] :  AndroidRuntime:  at java.lang.System.loadLibrary(System.java:989)
[ERROR] :  AndroidRuntime:  at org.appcelerator.kroll.runtime.v8.V8Runtime.loadExternalModules(V8Runtime.java:132)
[ERROR] :  AndroidRuntime:  at org.appcelerator.kroll.runtime.v8.V8Runtime.initRuntime(V8Runtime.java:99)
[ERROR] :  AndroidRuntime:  at org.appcelerator.kroll.KrollRuntime.doInit(KrollRuntime.java:205)
[ERROR] :  AndroidRuntime:  at org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:114)

I'm currently using Titanium SDK 5.2.1, and i'm using the Android SDK 6.0 (Level 23).

Any suggestions / guidance would be much appreciated. I've tried the above to no avail.

dineshkoli commented 8 years ago

Hi @annamf, I have done the changes as per you said, APP run successfully but when showing map app crashing.. Giving following ERROR-

[ERROR] : TiApplication: (main) [7920,27089] Sending event: exception on thread: main msg:java.lang.NoClassDefFoundError: ti.map.TiUIMapView; Titanium 5.2.1,2016/03/18 22:51,23e1c7d [ERROR] : TiApplication: java.lang.NoClassDefFoundError: ti.map.TiUIMapView [ERROR] : TiApplication: at ti.map.ViewProxy.createView(ViewProxy.java:79) [ERROR] : TiApplication: at org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:492) [ERROR] : TiApplication: at org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:478) [ERROR] : TiApplication: at org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:516) [ERROR] : TiApplication: at org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:500) [ERROR] : TiApplication: at org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:478) [ERROR] : TiApplication: at org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:516) [ERROR] : TiApplication: at org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:500) [ERROR] : TiApplication: at org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:478) [ERROR] : TiApplication: at org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:516) [ERROR] : TiApplication: at org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:500) [ERROR] : TiApplication: at org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:478) [ERROR] : TiApplication: at org.appcelerator.titanium.proxy.TiViewProxy.handleAdd(TiViewProxy.java:679) [ERROR] : TiApplication: at org.appcelerator.titanium.proxy.TiViewProxy.add(TiViewProxy.java:573) [ERROR] : TiApplication: at ti.modules.titanium.ui.WindowProxy.windowCreated(WindowProxy.java:258) [ERROR] : TiApplication: at org.appcelerator.titanium.TiActivi [ERROR] : TiApplication: at org.appcelerator.titanium.TiBaseActivity.windowCreated(TiBaseActivity.java:524) [ERROR] : TiApplication: at org.appcelerator.titanium.TiBaseActivity.onCreate(TiBaseActivity.java:638) [ERROR] : TiApplication: at org.appcelerator.titanium.TiActivity.onCreate(TiActivity.java:18) [ERROR] : TiApplication: at android.app.Activity.performCreate(Activity.java:6259) [ERROR] : TiApplication: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1130) [ERROR] : TiApplication: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379) [ERROR] : TiApplication: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490) [ERROR] : TiApplication: at android.app.ActivityThread.-wrap11(ActivityThread.java) [ERROR] : TiApplication: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354) [ERROR] : TiApplication: at android.os.Handler.dispatchMessage(Handler.java:102) [ERROR] : TiApplication: at android.os.Looper.loop(Looper.java:148) [ERROR] : TiApplication: at android.app.ActivityThread.main(ActivityThread.java:5443) [ERROR] : TiApplication: at java.lang.reflect.Method.invoke(Native Method) [ERROR] : TiApplication: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) [ERROR] : TiApplication: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

I am only able to use either Map or Google Analytics by this issue. is there any solution on it.?

astjohn commented 8 years ago

@soumyakantikar, I think I'm making progress and made a new branch, but haven't had time to test yet. Can you (or anyone else) please see if it works and report back. Thanks!

New version number will be 3.2.0. Use the zip in this folder: https://github.com/Sitata/titanium-google-analytics/tree/3.2.0/android/dist

Please treat it as an unstable release candidate.

dineshkoli commented 8 years ago

@astjohn
Thanks for giving reply on this issue. I really appreciate your work.

I have tested this module of version 3.2.0 but it not working. Giving me following errors- [ERROR] : Failed to run dexer: [ERROR] :
[ERROR] : UNEXPECTED TOP-LEVEL EXCEPTION: [ERROR] : java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zzau$zza$zza; [ERROR] : at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:122) [ERROR] : at com.android.dx.dex.file.DexFile.add(DexFile.java:161) [ERROR] : at com.android.dx.command.dexer.Main.processClass(Main.java:732) [ERROR] : at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673) [ERROR] : at com.android.dx.command.dexer.Main.access$300(Main.java:83) [ERROR] : at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602) [ERROR] : at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) [ERROR] : at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) [ERROR] : at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) [ERROR] : at com.android.dx.command.dexer.Main.processOne(Main.java:632) [ERROR] : at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510) [ERROR] : at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280) [ERROR] : at com.android.dx.command.dexer.Main.run(Main.java:246) [ERROR] : at com.android.dx.command.dexer.Main.main(Main.java:215) [ERROR] : at com.android.dx.command.Main.main(Main.java:106) [ERROR] : 1 error; aborting

dineshkoli commented 8 years ago

I gone through these 2 modules ti.map and google.analytics of versions 2.3.6(latest) and 3.2.0 respectively. ti.map module's lib folder contains google-play-services-analytics.jar and google-play-services-base.jar AND google.analytics module's lib folder contains google-play-services-map.jar and google-play-services-base.jar

Means they are containing same google-play-services-base.jar file. Because of that this error is coming.

I have removed this jar alternatively from these 2 module and run the app but failed. App cant run or installed in mobile or in android emulators.

Can you please look into this issue. Thanks in advance..

astjohn commented 8 years ago

@dineshkoli You're correct. Appcelerator has chosen to create this base.jar and other jars as a way to trim down google play services for apps that don't need all of google play services. This means that all modules which use google play services must include both base.jar and whatever other trimmed down jar is necessary. Here it is analytics.

As a result, all modules now need to include base.jar and the other jar file. This is for the case when a user is only using one module using google play services. However, our app and your app both use maps AND analytics.

This might mean that we always need to remove base.jar from one of the modules. I'm not sure. It might also mean that the stripped down analytics.jar that I made included some things that are already in base.jar. I'm still trying to figure out how they stripped down the jars to make base.jar and map.jar. Clearly, the stripped down analytics.jar file I made has some overlap with something that's in base.jar. I think if we can figure this bit out then we'll have a working solution.

astjohn commented 8 years ago

@dineshkoli I pushed some updates. Can you please try again?

You will have to replace the base.jar in other modules with the one from this module.

dineshkoli commented 8 years ago

@astjohn I have used your updated code and replace base.jar. And it working fine.. Great work astjohn. Thanks a lot for your help.. :)

soumyakantikar commented 8 years ago

@astjohn I have been held up with multiple tasks recently and hence could not look into it. But from the changes and the post, I would say that we both are going in the same direction. We need to include the analytics.jar and use the base.jar from other modules, if we are including multiple Google Play dependent modules. I will look into it from my end too and confirm.

asiby commented 8 years ago

Hi guys.

Thanks for all these great contributions. I think that found a solution that can work for every body.

First of all, it seems like finding the proper jar files from a safe trustable source is quite difficult. For that, simply install Android Studio and let Grade find the jars for you (regardless of the version). You can find all the Grade package names for the Google Play Services sub-packages at https://developers.google.com/android/guides/setup#add_google_play_services_to_your_project.

Then, find the jar files in your project directory and rename them appropriately because they will all be called classes.jar in a package specific directory.

The following is an example that I have got in my project directory ...

./app/build/intermediates/exploded-aar/com.google.android.gms/play-services-analytics/8.4.0/jars/classes.jar   ---(rename to)---> google-play-services-analytics.jar

./app/build/intermediates/exploded-aar/com.google.android.gms/play-services-base/8.4.0/jars/classes.jar   ---(rename to)---> google-play-services-base.jar

./app/build/intermediates/exploded-aar/com.google.android.gms/play-services-basement/8.4.0/jars/classes.jar   ---(rename to)---> google-play-services-basement.jar

./app/build/intermediates/exploded-aar/com.google.android.gms/play-services-gcm/8.4.0/jars/classes.jar   ---(rename to)---> google-play-services-gcm.jar

./app/build/intermediates/exploded-aar/com.google.android.gms/play-services-maps/8.4.0/jars/classes.jar   ---(rename to)---> google-play-services-maps.jar

Then use the combination of the google-play-services-basement.jar and google-play-services-base.jar plus any other jar that you need (maps, analytics, etc.)

So the steps are ...

  1. Create an project in Android Studio
  2. Modify the build.gradle file and added the google-play-services-* dependencies that you need and sync the project so that the needed files are all downloaded.
  3. Find the jar files and rename them appropriately.
  4. Copy the jar files everywhere in titanium modules wherever they are needed (even in Titanium modules that you may be building).
  5. Compile the project.
  6. Enjoy

Not that you do not need to be careful about not duplicating the jars are long as they have they are identical (ex. from the same version of Google Play Services).

If you are building a module, it can happen that you receive an error message about the expected version vs the used version. In such case, set the version manually.

The example below show what I had to do in my module (the expected version was 8487000) ...

<!-- <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> -->
<meta-data android:name="com.google.android.gms.version" android:value="8487000"/>

I can now successfully build my project.

soumyakantikar commented 8 years ago

It is working properly and the data are getting posted into Google Analytics. Any body else found any issue or has any update on the same?

ygbr commented 8 years ago

Hi @soumyakantikar have you used the solution above from @asiby ? Are you running Titanium 5.2.2.GA ?

ericpolkadoc commented 7 years ago

@soumyakantikar @asiby @astjohn -- im having some trouble getting the solution to work, using analytics and maps. What Ive done:

Did same thing for Titanium installed Modules, ie ti.map

and Ti.CloudPush

Ive tried it with and without the google-play-services-basement.jar

Ive tried it by naming the .jars as suggested above using google-play-services-.jar and also the way the 9.4.0 version I pulled down in my sample android application, simply as play-services-..jar.

Ive verified all jars are the same version of play services, which is 9.4.0.

When I launch my app with google.analytics in, I get a crash on start up.

Upon commenting it out, the app runs normally.

using v3.2.0 of GA here

Any thoughts on what might be happening or if Ive missed something?

here's the stack tracke

[INFO]  art: sart/runtime/check_jni.cc:65] JNI DETECTED ERROR IN APPLICATION: obj == null
[INFO]  art: sart/runtime/check_jni.cc:65]     in call to CallVoidMethodV
[INFO]  art: sart/runtime/check_jni.cc:65]     from void org.appcelerator.kroll.runtime.v8.V8Runtime.nativeRunModule(java.lang.String, java.lang.String, org.appcelerator.kroll.KrollProxySupport)
[INFO]  art: sart/runtime/check_jni.cc:65] "KrollRuntimeThread" prio=5 tid=10 Runnable
[INFO]  art: sart/runtime/check_jni.cc:65]   | group="main" sCount=0 dsCount=0 obj=0x12c73ca0 self=0xf482cc00
[INFO]  art: sart/runtime/check_jni.cc:65]   | sysTid=20492 nice=0 cgrp=default sched=0/0 handle=0xf490a300
[INFO]  art: sart/runtime/check_jni.cc:65]   | state=R schedstat=( 0 0 0 ) utm=113 stm=22 core=4 HZ=100
[INFO]  art: sart/runtime/check_jni.cc:65]   | stack=0xf33d2000-0xf33d4000 stackSize=1052KB
[INFO]  art: sart/runtime/check_jni.cc:65]   | held mutexes= "mutator lock"(shared held)
[INFO]  art: sart/runtime/check_jni.cc:65]   native: #00 pc 00004e64  /system/lib/libbacktrace_libc++.so (UnwindCurrent::Unwind(unsigned int, ucontext*)+23)
[INFO]  art: sart/runtime/check_jni.cc:65]   native: #01 pc 00003665  /system/lib/libbacktrace_libc++.so (Backtrace::Unwind(unsigned int, ucontext*)+8)
[INFO]  art: sart/runtime/check_jni.cc:65]   native: #02 pc 002661c1  /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::mirror::ArtMethod*)+84)
[INFO]  art: sart/runtime/check_jni.cc:65]   native: #03 pc 00248237  /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+158)
[INFO]  art: sart/runtime/check_jni.cc:65]   native: #04 pc 000b4c93  /system/lib/libart.so (art::JniAbort(char const*, char const*)+610)
[INFO]  art: sart/runtime/check_jni.cc:65]   native: #05 pc 000b53b9  /system/lib/libart.so (art::JniAbortF(char const*, char const*, ...)+68)
[INFO]  art: sart/runtime/check_jni.cc:65]   native: #06 pc 001b1071  /system/lib/libart.so (art::JNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+652)
[INFO]  art: sart/runtime/check_jni.cc:65]   native: #07 pc 00081231  /data/app/com.app.com-1/lib/arm/libkroll-v8.so (_JNIEnv::CallVoidMethod(_jobject*, _jmethodID*, ...)+18)
[INFO]  art: sart/runtime/check_jni.cc:65]   native: #08 pc 000812e1  /data/app/com.app.com-1/lib/arm/libkroll-v8.so (???)
[INFO]  art: sart/runtime/check_jni.cc:65]   native: #09 pc 00081941  /data/app/com.app.com-1/lib/arm/libkroll-v8.so (titanium::Proxy::onPropertyChanged(v8::Local<v8::String>, v8::Local<v8::Value>, v8::AccessorInfo const&)+6)
[INFO]  art: sart/runtime/check_jni.cc:65]   native: #10 pc 0025810c  /data/app/com.app.com-1/lib/arm/libkroll-v8.so (???)
[INFO]  art: sart/runtime/check_jni.cc:65]   at org.appcelerator.kroll.runtime.v8.V8Runtime.nativeRunModule(Native method)
[INFO]  art: sart/runtime/check_jni.cc:65]   at org.appcelerator.kroll.KrollRuntime.handleMessage(KrollRuntime.java:319)
[INFO]  art: sart/runtime/check_jni.cc:65]   at org.appcelerator.kroll.runtime.v8.V8Runtime.handleMessage(V8Runtime.java:203)
[INFO]  art: sart/runtime/check_jni.cc:65]   at android.os.Handler.dispatchMessage(Handler.java:98)
[INFO]  art: sart/runtime/check_jni.cc:65]   at android.os.Looper.loop(Looper.java:145)
[INFO]  art: sart/runtime/check_jni.cc:65]   at org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:118)
[INFO]  art: sart/runtime/check_jni.cc:65]
[INFO]  art: sart/runtime/runtime.cc:292] Runtime aborting...
[INFO]  art: sart/runtime/runtime.cc:292] Aborting thread:
[INFO]  art: sart/runtime/runtime.cc:292] "KrollRuntimeThread" prio=5 tid=10 Native
[INFO]  art: sart/runtime/runtime.cc:292]   | group="" sCount=0 dsCount=0 obj=0x12c73ca0 self=0xf482cc00
[INFO]  art: sart/runtime/runtime.cc:292]   | sysTid=20492 nice=0 cgrp=default sched=0/0 handle=0xf490a300
[INFO]  art: sart/runtime/runtime.cc:292]   | state=R schedstat=( 0 0 0 ) utm=113 stm=22 core=4 HZ=100
[INFO]  art: sart/runtime/runtime.cc:292]   | stack=0xf33d2000-0xf33d4000 stackSize=1052KB
[INFO]  art: sart/runtime/runtime.cc:292]   | held mutexes= "abort lock" "mutator lock"(shared held)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #00 pc 00004e64  /system/lib/libbacktrace_libc++.so (UnwindCurrent::Unwind(unsigned int, ucontext*)+23)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #01 pc 00003665  /system/lib/libbacktrace_libc++.so (Backtrace::Unwind(unsigned int, ucontext*)+8)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #02 pc 002661c1  /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::mirror::ArtMethod*)+84)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #03 pc 00248237  /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+158)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #04 pc 002365b9  /system/lib/libart.so (art::AbortState::DumpThread(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, art::Thread*)+32)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #05 pc 00236f9f  /system/lib/libart.so (art::AbortState::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+410)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #06 pc 0023715f  /system/lib/libart.so (art::Runtime::Abort()+82)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #07 pc 000aa5b1  /system/lib/libart.so (art::LogMessage::~LogMessage()+1360)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #08 pc 000b4e7f  /system/lib/libart.so (art::JniAbort(char const*, char const*)+1102)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #09 pc 000b53b9  /system/lib/libart.so (art::JniAbortF(char const*, char const*, ...)+68)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #10 pc 001b1071  /system/lib/libart.so (art::JNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+652)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #11 pc 00081231  /data/app/com.app.com-1/lib/arm/libkroll-v8.so (_JNIEnv::CallVoidMethod(_jobject*, _jmethodID*, ...)+18)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #12 pc 000812e1  /data/app/com.app.com-1/lib/arm/libkroll-v8.so (???)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #13 pc 00081941  /data/app/com.app.com-1/lib/arm/li
[INFO]  art: sart/runtime/runtime.cc:292]   native: #14 pc 0025810c  /data/app/com.app.com-1/lib/arm/libkroll-v8.so (???)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.runtime.v8.V8Runtime.nativeRunModule(Native method)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.runtime.v8.V8Runtime.doRunModule(V8Runtime.java:177)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.KrollRuntime.handleMessage(KrollRuntime.java:319)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.runtime.v8.V8Runtime.handleMessage(V8Runtime.java:203)
[INFO]  art: sart/runtime/runtime.cc:292]   at android.os.Handler.dispatchMessage(Handler.java:98)
[INFO]  art: sart/runtime/runtime.cc:292]   at android.os.Looper.loop(Looper.java:145)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:118)
[INFO]  art: sart/runtime/runtime.cc:292] Pending exception java.lang.NoClassDefFoundError thrown by 'unknown throw location'
[INFO]  art: sart/runtime/runtime.cc:292] java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/analytics/GoogleAnalytics;
[INFO]  art: sart/runtime/runtime.cc:292]   at void analytics.google.AnalyticsGoogleModule.<init>() (AnalyticsGoogleModule.java:45)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Object java.lang.reflect.Constructor.newInstance!(java.lang.Object[], boolean) (Constructor.java:-2)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Object java.lang.Class.newInstance() (Class.java:1690)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.KrollProxy org.appcelerator.kroll.KrollProxy.createProxy(java.lang.Class, org.appcelerator.kroll.KrollObject, java.lang.Object[], java.lang.String) (KrollProxy.java:142)
[INFO]  art: sart/runtime/runtime.cc:292]   at void org.appcelerator.kroll.runtime.v8.V8Runtime.nativeRunModule(java.lang.String, java.lang.String, org.appcelerator.kroll.KrollProxySupport) (V8Runtime.java:-2)
[INFO]  art: sart/runtime/runtime.cc:292]   at void org.appcelerator.kroll.runtime.v8.V8Runtime.doRunModule(java.lang.String, java.lang.String, org.appcelerator.kroll.KrollProxySupport) (V8Runtime.java:177)
[INFO]  art: sart/runtime/runtime.cc:292]   at boolean org.appcelerator.kroll.KrollRuntime.handleMessage(android.os.Message) (KrollRuntime.java:319)
[INFO]  art: sart/runtime/runtime.cc:292]   at boolean org.appcelerator.kroll.runtime.v8.V8Runtime.handleMessage(android.os.Message) (V8Runtime.java:203)
[INFO]  art: sart/runtime/runtime.cc:292]   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:98)
[INFO]  art: sart/runtime/runtime.cc:292]   at void android.os.Looper.loop() (Looper.java:145)
[INFO]  art: sart/runtime/runtime.cc:292]   at void org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run() (KrollRuntime.java:118)
[INFO]  art: sart/runtime/runtime.cc:292] Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.analytics.GoogleAnalytics" on path: DexPathList[[zip file "/data/app/com.app.com-1/base.apk"],nativeLibraryDirectories=[/data/app/com.app.com-1/lib/arm, /vendor/lib, /system/lib]]
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:511)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:469)
[INFO]  art: sart/runtime/runtime.cc:292]   at void analytics.google.AnalyticsGoogleModule.<init>() (AnalyticsGoogleModule.java:45)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Object java.lang.reflect.Constructor.newInstance!(java.lang.Object[], boolean) (Constructor.java:-2)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Object java.lang.Class.newInstance() (Class.java:1690)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.KrollProxy org.appcelerator.kroll.KrollProxy.createProxy(java.lang.Class, org.appcelerator.kroll.KrollObject, java.lang.Object[], java.lang.String) (KrollProxy.java:142)
[INFO]  art: sart/runtime/runtime.cc:292]   at void org.appcelerator.kroll.runtime.v8.V8Runtime.nativeRunModule(java.lang.String, java.lang.String, org.appcelerator.kroll.KrollProxySupport) (V8Runtime.java:-2)
[INFO]  art: sart/runtime/runtime.cc:292]   at void org.appcelerator.kroll.runtime.v8.V8Runtime.doRunModule(java.lang.String, java.lang.String, org.appcelerator.kroll.KrollProxySupport) (V8Runtime.java:177)
[INFO]  art: sart/runtime/runtime.cc:292]   at boolean org.appcelerator.kroll.KrollRuntime.handleMessage(android.os.Message) (KrollRuntime.java:319)
[INFO]  art: sart/runtime/runtime.cc:292]   at boolean org.appcelerator.kroll.runtime.v8.V8Runtime.handleMessage(android.os.Message) (V8Runtime.java:203)
[INFO]  art: sart/runtime/runtime.cc:292]   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:98)
[INFO]  art: sart/runtime/runtime.cc:292]   at void android.os.Looper.loop() (Looper.java:145)
[INFO]  art: sart/runtime/runtime.cc:292]   at void org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run() (KrollRuntime.java:118)
[INFO]  art: sart/runtime/runtime.cc:292] Dumping all threads without appropriate locks held: thread list lock mutator lock
[INFO]  art: sart/runtime/runtime.cc:292] All threads:
[INFO]  art: sart/runtime/runtime.cc:292] DALVIK THREADS (13):
[INFO]  art: sart/runtime/runtime.cc:292] "main" prio=5 tid=1 TimedWaiting
[INFO]  art: sart/runtime/runtime.cc:292]   | group="" sCount=0 dsCount=0 obj=0x874b0000 self=0xf4827800
[INFO]  art: sart/runtime/runtime.cc:292]   | sysTid=20437 nice=0 cgrp=default sched=0/0 handle=0xf7229bec
[INFO]  art: sart/runtime/runtime.cc:292]   | state=S schedstat=( 0 0 0 ) utm=21 stm=3 core=7 HZ=100
[INFO]  art: sart/runtime/runtime.cc:292]   | stack=0xff514000-0xff516000 stackSize=8MB
[INFO]  art: sart/runtime/runtime.cc:292]   | held mutexes=
[INFO]  art: sart/runtime/runtime.cc:292]   kernel: (couldn't read /proc/self/task/20437/stack)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #00 pc 0001341c  /system/lib/libc.so (syscall+32)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #01 pc 000ad09f  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+118)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #02 pc 00203f4d  /system/lib/libart.so (art::Monitor::Wait(art::Thread*, long long, int, bool, art::ThreadState)+504)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #03 pc 0020565d  /system/lib/libart.so (art::Monitor::Wait(art::Thread*, art::mirror::Object*, long long, int, bool, art::ThreadState)+136)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #04 pc 00214cb5  /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+44)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #05 pc 0000061b  /system/framework/arm/boot.oat (Java_java_lang_Object_wait__JI+102)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Object.wait!(Native method)
[INFO]  art: sart/runtime/runtime.cc:292]   - waiting on <0x215266bf> (a java.lang.Object)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Thread.parkFor(Thread.java:1220)
[INFO]  art: sart/runtime/runtime.cc:292]   - locked <0x215266bf> (a java.lang.Object)
[INFO]  art: sart/runtime/runtime.cc:292]   at sun.misc.Unsafe.park(Unsafe.java:299)
[INFO]  art: sart/runtime/runtime.cc:292]
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1014)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1304)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.Semaphore.tryAcquire(Semaphore.java:380)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.common.TiMessenger$2.getResult(TiMessenger.java:253)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.common.TiMessenger.sendBlockingMessage(TiMessenger.java:291)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.common.TiMessenger.sendBlockingRuntimeMessage(TiMessenger.java:177)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.KrollProxy.getKrollObject(KrollProxy.java:454)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.KrollProxy.hasListeners(KrollProxy.java:948)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.KrollProxy.hierarchyHasListener(KrollProxy.java:956)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.KrollProxy.fireEvent(KrollProxy.java:752)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.titanium.TiBaseActivity.onCreate(TiBaseActivity.java:642)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.titanium.TiLaunchActivity.onCreate(TiLaunchActivity.java:143)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.titanium.TiRootActivity.onCreate(TiRootActivity.java:96)
[INFO]  art: sart/runtime/runtime.cc:292]   at android.app.Activity.performCreate(Activity.java:6550)
[INFO]  art: sart/runtime/runtime.cc:292]   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120)
[INFO]  art: sart/runtime/runtime.cc:292]   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3108)
[INFO]  art: sart/runtime/runtime.cc:292]   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3263)
[INFO]  art: sart/runtime/runtime.cc:292]   at android.app.ActivityThread.access$1000(ActivityThread.java:197)
[INFO]  art: sart/runtime/runtime.cc:292]   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1687)
[INFO]  art: sart/runtime/runtime.cc:292]   at android.os.Handler.dispatchMessage(Handler.java:102)
[INFO]  art: sart/runtime/runtime.cc:292]   at android.os.Looper.loop(Looper.java:145)
[INFO]  art: sart/runtime/runtime.cc:292]   at android.app.ActivityThread.main(ActivityThread.java:6897)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.reflect.Method.invoke!(Native method)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.reflect.Method.invoke(Method.java:372)
[INFO]  art: sart/runtime/runtime.cc:292]   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
[INFO]  art: sart/runtime/runtime.cc:292]   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
[INFO]  art: sart/runtime/runtime.cc:292]
[INFO]  art: sart/runtime/runtime.cc:292] "Signal Catcher" prio=5 tid=2 WaitingInMainSignalCatcherLoop
[INFO]  art: sart/runtime/runtime.cc:292]   | group="" sCount=0 dsCount=0 obj=0x12c5c0a0 self=0xee86f800
[INFO]  art: sart/runtime/runtime.cc:292]   | sysTid=20444 nice=0 cgrp=default sched=0/0 handle=0xf490a080
[INFO]  art: sart/runtime/runtime.cc:292]   | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=1 HZ=100
[INFO]  art: sart/runtime/runtime.cc:292]   | stack=0xf3ff5000-0xf3ff7000 stackSize=1012KB
[INFO]  art: sart/runtime/runtime.cc:292]   | held mutexes=
[INFO]  art: sart/runtime/runtime.cc:292]   kernel: (couldn't read /proc/self/task/20444/stack)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #00 pc 0003b528  /system/lib/libc.so (__rt_sigtimedwait+12)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #01 pc 00018c31  /system/lib/libc.so (sigwait+24)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #02 pc 0023b4b3  /system/lib/libart.so (art::SignalCatcher::WaitForSignal(art::Thread*, art::SignalSet&)+86)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #03 pc 0023d045  /system/lib/libart.so (art::SignalCatcher::Run(void*)+208)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #04 pc 000174a7  /system/lib/libc.so (__pthread_start(void*)+30)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #05 pc 000154c3  /system/lib/libc.so (__start_thread+6)
[INFO]  art: sart/runtime/runtime.cc:292]   (no managed stack frames)
[INFO]  art: sart/runtime/runtime.cc:292]
[INFO]  art: sart/runtime/runtime.cc:292] "FinalizerDaemon" prio=5 tid=4 Waiting
[INFO]  art: sart/runtime/runtime.cc:292]   | group="" sCount=0 dsCount=0 obj=0x12c5e100 self=0xf4828000
[INFO]  art: sart/runtime/runtime.cc:292]   | sysTid=20447 nice=0 cgrp=default sched=0/0 handle=0xf490af80
[INFO]  art: sart/runtime/runtime.cc:292]   | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=6 HZ=100
[INFO]  art: sart/runtime/runtime.cc:292]   | stack=0xf3ce9000-0xf3ceb000 stackSize=1036KB
[INFO]  art: sart/runtime/runtime.cc:292]   | held mutexes=
[INFO]  art: sart/runtime/runtime.cc:292]   kernel: (couldn't read /proc/self/task/20447/stack)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #00 pc 00013418  /system/lib/libc.so (syscall+28)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #01 pc 000ad31f  /system/lib/libart.so (art::ConditionVariable::Wait(art::Thread*)+98)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #02 pc 00204161  /system/lib/libart.so (art::Monitor::Wait(art::Thread*, long long, int, bool, art::ThreadState)+1036)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #03 pc 0020565d  /system/lib/libart.so (art::Monitor::Wait(art::Thread*, art::mirror::Object*, long long, int, bool, art::ThreadState)+136)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #04 pc 00214cb5  /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+44)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #05 pc 0000061b  /system/framework/arm/boot.oat (Java_java_lang_Object_wait__JI+102)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Object.wait!(Native method)
[INFO]  art: sart/runtime/runtime.cc:292]   - waiting on <0x021e218c> (a java.lang.ref.ReferenceQueue)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Object.wait(Object.java:422)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:101)
[INFO]  art: sart/runtime/runtime.cc:292]   - locked <0x021e218c> (a java.lang.ref.ReferenceQueue)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:72)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:189)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Thread.run(Thread.java:818)
[INFO]  art: sart/runtime/runtime.cc:292]
[INFO]  art: sart/runtime/runtime.cc:292] "ReferenceQueueDaemon" prio=5 tid=5 Waiting
[INFO]  art: sart/runtime/runtime.cc:292]   | group="" sCount=0 dsCount=0 obj=0x12c5e0a0 self=0xf4827c00
[INFO]  art: sart/runtime/runtime.cc:292]   | sysTid=20446 nice=0 cgrp=default sched=0/0 handle=0xf490aa80
[INFO]  art: sart/runtime/runtime.cc:292]   | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=1 HZ=100
[INFO]  art: sart/runtime/runtime.cc:292]   | stack=0xf3ded000-0xf3def000 stackSize=1036KB
[INFO]  art: sart/runtime/runtime.cc:292]   | held mutexes=
[INFO]  art: sart/runtime/runtime.cc:292]   kernel: (couldn't read /proc/self/task/20446/stack)
[INFO]  art     : sart/runtime/runtime.cc:292]   native: #00 pc 00013418  /system/lib/libc.so (syscall+28)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #01 pc 000ad31f  /system/lib/libart.so (art::ConditionVariable::Wait(art::Thread*)+98)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #02 pc 00204161  /system/lib/libart.so (art::Monitor::Wait(art::Thread*, long long, int, bool, art::ThreadState)+1036)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #03 pc 0020565d  /system/lib/libart.so (art::Monitor::Wait(art::Thread*, art::mirror::Object*, long long, int, bool, art::ThreadState)+136)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #04 pc 00214ced  /system/lib/libart.so (art::Object_wait(_JNIEnv*, _jobject*)+40)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #05 pc 000003ef  /system/framework/arm/boot.oat (Java_java_lang_Object_wait__+82)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Object.wait!(Native method)
[INFO]  art: sart/runtime/runtime.cc:292]   - waiting on <0x135520d5> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:149)
[INFO]  art: sart/runtime/runtime.cc:292]   - locked <0x135520d5> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Thread.run(Thread.java:818)
[INFO]  art: sart/runtime/runtime.cc:292]
[INFO]  art: sart/runtime/runtime.cc:292] "FinalizerWatchdogDaemon" prio=5 tid=6 Sleeping
[INFO]  art: sart/runtime/runtime.cc:292]   | group="" sCount=0 dsCount=0 obj=0x12c5e160 self=0xf4828400
[INFO]  art: sart/runtime/runtime.cc:292]   | sysTid=20448 nice=0 cgrp=default sched=0/0 handle=0xf490b700
[INFO]  art: sart/runtime/runtime.cc:292]   | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=3 HZ=100
[INFO]  art: sart/runtime/runtime.cc:292]   | stack=0xf3be5000-0xf3be7000 stackSize=1036KB
[INFO]  art: sart/runtime/runtime.cc:292]   | held mutexes=
[INFO]  art: sart/runtime/runtime.cc:292]   kernel: (couldn't read /proc/self/task/20448/stack)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #00 pc 0001341c  /system/lib/libc.so (syscall+32)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #01 pc 000ad09f  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+118)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #02 pc 00203f4d  /system/lib/libart.so (art::Monitor::Wait(art::Thread*, long long, int, bool, art::ThreadState)+504)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #03 pc 0020565d  /system/lib/libart.so (art::Monitor::Wait(art::Thread*, art::mirror::Object*, long long, int, bool, art::ThreadState)+136)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #04 pc 000754e9  /system/framework/arm/boot.oat (Java_java_lang_Thread_sleep__Ljava_lang_Object_2JI+132)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Thread.sleep!(Native method)
[INFO]  art: sart/runtime/runtime.cc:292]   - sleeping on <0x24fe10ea> (a java.lang.Object)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Thread.sleep(Thread.java:1031)
[INFO]  art: sart/runtime/runtime.cc:292]   - locked <0x24fe10ea> (a java.lang.Object)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Thread.sleep(Thread.java:985)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:273)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:284)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:232)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Thread.run(Thread.java:818)
[INFO]  art: sart/runtime/runtime.cc:292]
[INFO]  art: sart/runtime/runtime.cc:292] "Binder_1" prio=5 tid=7 Native
[INFO]  art: sart/runtime/runtime.cc:292]   | group="" sCount=0 dsCount=0 obj=0x12c730a0 self=0xf4828c00
[INFO]  art: sart/runtime/runtime.cc:292]   | sysTid=20449 nice=0 cgrp=default sched=0/0 handle=0xf490a580
[INFO]  art: sart/runtime/runtime.cc:292]   | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
[INFO]  art: sart/runtime/runtime.cc:292]   | stack=0xf39e9000-0xf39eb000 stackSize=1012KB
[INFO]  art: sart/runtime/runtime.cc:292]   | held mutexes=
[INFO]  art: sart/runtime/runtime.cc:292]   kernel: (couldn't read /proc/self/task/20449/stack)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #00 pc 0003bcf0  /system/lib/libc.so (__ioctl+8)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #01 pc 000529fd  /system/lib/libc.so (ioctl+14)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #02 pc 0001f657  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+190)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #03 pc 0001fbaf  /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+6)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #04 pc 0001fc11  /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+48)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #05 pc 00023f6f  /system/lib/libbinder.so (???)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #06 pc 000106a9  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+112)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #07 pc 000665b5  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+72)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #08 pc 00010219  /system/lib/libutils.so (???)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #09 pc 000174a7  /system/lib/libc.so (__pthread_start(void*)+30)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #10 pc 000154c3  /system/lib/libc.so (__start_thread+6)
[INFO]  art: sart/runtime/runtime.cc:292]   (no managed stack frames)
[INFO]  art: sart/runtime/runtime.cc:292]
[INFO]  art: sart/runtime/runtime.cc:292] "HeapTrimmerDaemon" prio=5 tid=8 Sleeping
[INFO]  art: sart/runtime/runtime.cc:292]   | group="" sCount=0 dsCount=0 obj=0x12c5e1c0 self=0xf4828800
[INFO]  art: sart/runtime/runtime.cc:292]   | sysTid=20450 nice=0 cgrp=default sched=0/0 handle=0xf490b980
[INFO]  art: sart/runtime/runtime.cc:292]   | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=2 HZ=100
[INFO]  art: sart/runtime/runtime.cc:292]   | stack=0xf38e5000-0xf38e7000 stackSize=1036KB
[INFO]  art: sart/runtime/runtime.cc:292]   | held mutexes=
[INFO]  art: sart/runtime/runtime.cc:292]   kernel: (couldn't read /proc/self/task/20450/stack)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #00 pc 0003a7f8  /system/lib/libc.so (nanosleep+12)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #01 pc 00025979  /system/lib/libc.so (usleep+32)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #02 pc 001517f3  /system/lib/libart.so (art::gc::Heap::DoPendingTransitionOrTrim()+690)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #03 pc 000003ef  /system/framework/arm/boot.oat (Java_dalvik_system_VMRuntime_trimHeap__+82)
[INFO]  art: sart/runtime/runtime.cc:292]   at dalvik.system.VMRuntime.trimHeap(Native method)
[INFO]  art: sart/runtime/runtime.cc:292]   - sleeping on an unknown object
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Daemons$HeapTrimmerDaemon.run(Daemons.java:328)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Thread.run(Thread.java:818)
[INFO]  art: sart/runtime/runtime.cc:292]
[INFO]  art: sart/runtime/runtime.cc:292] "GCDaemon" prio=5 tid=9 Waiting
[INFO]  art: sart/runtime/runtime.cc:292]   | group="" sCount=0 dsCount=0 obj=0x12c5e220 self=0xf482b400
[INFO]  art: sart/runtime/runtime.cc:292]   | sysTid=20452 nice=0 cgrp=default sched=0/0
[INFO]  art: sart/runtime/runtime.cc:292]   | state=S schedstat=( 0 0 0 ) utm=5 stm=0 core=6 HZ=100
[INFO]  art: sart/runtime/runtime.cc:292]   | stack=0xf37e1000-0xf37e3000 stackSize=1036KB
[INFO]  art: sart/runtime/runtime.cc:292]   | held mutexes=
[INFO]  art: sart/runtime/runtime.cc:292]   kernel: (couldn't read /proc/self/task/20452/stack)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #00 pc 00013418  /system/lib/libc.so (syscall+28)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #01 pc 000ad31f  /system/lib/libart.so (art::ConditionVariable::Wait(art::Thread*)+98)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #02 pc 00204161  /system/lib/libart.so (art::Monitor::Wait(art::Thread*, long long, int, bool, art::ThreadState)+1036)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #03 pc 0020565d  /system/lib/libart.so (art::Monitor::Wait(art::Thread*, art::mirror::Object*, long long, int, bool, art::ThreadState)+136)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #04 pc 00214ced  /system/lib/libart.so (art::Object_wait(_JNIEnv*, _jobject*)+40)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #05 pc 000003ef  /system/framework/arm/boot.oat (Java_java_lang_Object_wait__+82)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Object.wait!(Native method)
[INFO]  art: sart/runtime/runtime.cc:292]   - waiting on <0x2850afdb> (a java.lang.Daemons$GCDaemon)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Daemons$GCDaemon.run(Daemons.java:359)
[INFO]  art: sart/runtime/runtime.cc:292]   - locked <0x2850afdb> (a java.lang.Daemons$GCDaemon)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Thread.run(Thread.java:818)
[INFO]  art: sart/runtime/runtime.cc:292]
[INFO]  art: sart/runtime/runtime.cc:292] "Binder_2" prio=5 tid=3 Native
[INFO]  art: sart/runtime/runtime.cc:292]   | group="" sCount=0 dsCount=0 obj=0x12c5e280 self=0xf4829800
[INFO]  art: sart/runtime/runtime.cc:292]   | sysTid=20453 nice=0 cgrp=default sched=0/0 handle=0xf490cb00
[INFO]  art: sart/runtime/runtime.cc:292]   | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=5 HZ=100
[INFO]  art: sart/runtime/runtime.cc:292]   | stack=0xf36e3000-0xf36e5000 stackSize=1012KB
[INFO]  art: sart/runtime/runtime.cc:292]   | held mutexes=
[INFO]  art: sart/runtime/runtime.cc:292]   kernel: (couldn't read /proc/self/task/20453/stack)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #00 pc 0003bcf0  /system/lib/libc.so (__ioctl+8)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #01 pc 000529fd  /system/lib/libc.so (ioctl+14)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #02 pc 0001f657  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+190)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #03 pc 0001fbaf  /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+6)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #04 pc 0001fc11  /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+48)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #05 pc 00023f6f  /system/lib/libbinder.so (???)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #06 pc 000106a9  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+112)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #07 pc 000665b5  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+72)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #08 pc 00010219  /system/lib/libutils.so (???)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #09 pc 000174a7  /system/lib/libc.so (__pthread_start(void*)+30)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #10 pc 000154c3  /system/lib/libc.so (__start_thread+6)
[INFO]  art: sart/runtime/runtime.cc:292]   (no managed stack frames)
[INFO]  art: sart/runtime/runtime.cc:292]
[INFO]  art: sart/runtime/runtime.cc:292] "KrollRuntimeThread" prio=5 tid=10 Native
[INFO]  art: sart/runtime/runtime.cc:292]   | group="" sCount=0 dsCount=0 obj=0x12c73ca0 self=0xf482cc00
[INFO]  art: sart/runtime/runtime.cc:292]   | sysTid=20492 nice=0 cgrp=default sched=0/0 handle=0xf490a300
[INFO]  art: sart/runtime/runtime.cc:292]   | state=R schedstat=( 0 0 0 ) utm=117 stm=26 core=4 HZ=100
[INFO]  art: sart/runtime/runtime.cc:292]   | stack=0xf33d2000-0xf33d4000 stackSize=1052KB
[INFO]  art: sart/runtime/runtime.cc:292]   | held mutexes= "abort lock"
[INFO]  art: sart/runtime/runtime.cc:292]   native: #00 pc 00004e64  /system/lib/libbacktrace_libc++.so (UnwindCurrent::Unwind(unsigned int, ucontext*)+23)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #01 pc 00003665  /system/lib/libbacktrace_libc++.so (Backtrace::Unwind(unsigned int, ucontext*)+8)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #02 pc 002661c1  /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::mirror::ArtMethod*)+84)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #03 pc 00248237  /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+158)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #04 pc 0025192d  /system/lib/libart.so (art::ThreadList::DumpLocked(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+120)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #05 pc 00236f15  /system/lib/libart.so (art::AbortState::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+272)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #06 pc 0023715f  /system/lib/libart.so (art::Runtime::Abort()+82)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #07 pc 000aa5b1  /system/lib/libart.so (art::LogMessage::~LogMessage()+1360)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #08 pc 000b4e7f  /system/lib/libart.so (art::JniAbort(char const*, char const*)+1102)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #09 pc 000b53b9  /system/lib/libart.so (art::JniAbortF(char const*, char const*, ...)+68)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #10 pc 001b1071  /system/lib/libart.so (art::JNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+652)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #11 pc 00081231  /data/app/com.app.com-1/lib/arm/libkroll-v8.so (_JNIEnv::CallVoidMethod(_jobject*, _jmethodID*, ...)+18)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #12 pc 000812e1  /data/app/com.app.com-1/lib/arm/libkroll-v8.so (???)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #13 pc 00081941  /data/app/com.app.com-1/lib/arm/libkroll-v8.so (titanium::Proxy::onPropertyChanged(v8::Local<v8::String>, v8::Local<v8::Value>, v8::AccessorInfo const&)+6)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #14 pc 0025810c  /data/app/com.app.com-1/lib/arm/libkroll-v8.so (???)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.runtime.v8.V8Runtime.nativeRunModule(Native method)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.runtime.v8.V8Runtime.doRunModule(V8Runtime.java:177)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.KrollRuntime.handleMessage(KrollRuntime.java:319)
[INFO]  art: sart/runtime/runtime.cc:292]   at org.appcelerator.kroll.runtime.v8.V8Runtime.handleMessage(V8Runtime.java:203)
[INFO]  art: sart/runtime/runtime.cc:292]   at android.os.Handler.dispatchMessage(Handler.java:98)
[INFO]  art: sart/runtime/runtime.cc:292]   at android.os.Looper.loop(Looper.java:145)
[INFO]  art: sart/runt
[INFO]  art: sart/runtime/runtime.cc:292]
[INFO]  art: sart/runtime/runtime.cc:292] "pool-2-thread-1" prio=5 tid=11 TimedWaiting
[INFO]  art: sart/runtime/runtime.cc:292]   | group="" sCount=0 dsCount=0 obj=0x12c42100 self=0xf482c800
[INFO]  art: sart/runtime/runtime.cc:292]   | sysTid=20494 nice=0 cgrp=default sched=0/0 handle=0xf490a800
[INFO]  art: sart/runtime/runtime.cc:292]   | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=6 HZ=100
[INFO]  art: sart/runtime/runtime.cc:292]   | stack=0xeecfe000-0xeed00000 stackSize=1036KB
[INFO]  art: sart/runtime/runtime.cc:292]   | held mutexes=
[INFO]  art: sart/runtime/runtime.cc:292]   kernel: (couldn't read /proc/self/task/20494/stack)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #00 pc 0001341c  /system/lib/libc.so (syscall+32)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #01 pc 000ad09f  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+118)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #02 pc 00203f4d  /system/lib/libart.so (art::Monitor::Wait(art::Thread*, long long, int, bool, art::ThreadState)+504)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #03 pc 0020565d  /system/lib/libart.so (art::Monitor::Wait(art::Thread*, art::mirror::Object*, long long, int, bool, art::ThreadState)+136)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #04 pc 00214cb5  /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+44)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #05 pc 0000061b  /system/framework/arm/boot.oat (Java_java_lang_Object_wait__JI+102)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Object.wait!(Native method)
[INFO]  art: sart/runtime/runtime.cc:292]   - waiting on <0x1e51ca78> (a java.lang.Object)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Thread.parkFor(Thread.java:1220)
[INFO]  art: sart/runtime/runtime.cc:292]   - locked <0x1e51ca78> (a java.lang.Object)
[INFO]  art: sart/runtime/runtime.cc:292]   at sun.misc.Unsafe.park(Unsafe.java:299)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:197)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2055)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1060)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:776)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Thread.run(Thread.java:818)
[INFO]  art: sart/runtime/runtime.cc:292]
[INFO]  art: sart/runtime/runtime.cc:292] "pool-3-thread-1" prio=5 tid=12 TimedWaiting
[INFO]  art: sart/runtime/runtime.cc:292]   | group="" sCount=0 dsCount=0 obj=0x12df4b20 self=0xf482f000
[INFO]  art: sart/runtime/runtime.cc:292]   | sysTid=20518 nice=0 cgrp=default sched=0/0 handle=0xf490d000
[INFO]  art: sart/runtime/runtime.cc:292]   | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=6 HZ=100
[INFO]  art: sart/runtime/runtime.cc:292]   | stack=0xee3f4000-0xee3f6000 stackSize=1036KB
[INFO]  art: sart/runtime/runtime.cc:292]   | held mutexes=
[INFO]  art: sart/runtime/runtime.cc:292]   kernel: (couldn't read /proc/self/task/20518/stack)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #00 pc 0001341c  /system/lib/libc.so (syscall+32)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #01 pc 000ad09f  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+118)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #02 pc 00203f4d  /system/lib/libart.so (art::Monitor::Wait(art::Thread*, long long, int, bool, art::ThreadState)+504)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #03 pc 0020565d  /system/lib/libart.so (art::Monitor::Wait(art::Thread*, art::mirror::Object*, long long, int, bool, art::ThreadState)+136)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #04 pc 00214cb5  /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+44)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #05 pc 0000061b  /system/framework/arm/boot.oat (Java_java_lang_Object_wait__JI+102)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Object.wait!(Native method)
[INFO]  art: sart/runtime/runtime.cc:292]   - waiting on <0x2553f551> (a java.lang.Object)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Thread.parkFor(Thread.java:1220)
[INFO]  art: sart/runtime/runtime.cc:292]   - locked <0x2553f551> (a java.lang.Object)
[INFO]  art: sart/runtime/runtime.cc:292]   at sun.misc.Unsafe.park(Unsafe.java:299)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:197)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2055)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1060)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:776)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Thread.run(Thread.java:818)
[INFO]  art: sart/runtime/runtime.cc:292]
[INFO]  art: sart/runtime/runtime.cc:292] "OkHttp ConnectionPool" prio=5 tid=14 TimedWaiting
[INFO]  art: sart/runtime/runtime.cc:292]   | group="" sCount=0 dsCount=0 obj=0x12d6a700 self=0xee871800
[INFO]  art: sart/runtime/runtime.cc:292]   | sysTid=20538 nice=19 cgrp=bg_non_interactive sched=0/0 handle=0xee89b700
[INFO]  art: sart/runtime/runtime.cc:292]   | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=1 HZ=100
[INFO]  art: sart/runtime/runtime.cc:292]   | stack=0xe02fe000-0xe0300000 stackSize=1036KB
[INFO]  art: sart/runtime/runtime.cc:292]   | held mutexes=
[INFO]  art: sart/runtime/runtime.cc:292]   kernel: (couldn't read /proc/self/task/20538/stack)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #00 pc 0001341c  /system/lib/libc.so (syscall+32)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #01 pc 000ad09f  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+118)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #02 pc 00203f4d  /system/lib/libart.so (art::Monitor::Wait(art::Thread*, long long, int, bool, art::ThreadState)+504)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #03 pc 0020565d  /system/lib/libart.so (art::Monitor::Wait(art::Thread*, art::mirror::Object*, long long, int, bool, art::ThreadState)+136)
[INFO]  art: sart/runtime/runtime.cc:292]   native: #04 pc 00214cb5  /system/lib
[INFO]  art: sart/runtime/runtime.cc:292]   native: #05 pc 0000061b  /system/framework/arm/boot.oat (Java_java_lang_Object_wait__JI+102)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Object.wait!(Native method)
[INFO]  art: sart/runtime/runtime.cc:292]   - waiting on <0x072451b6> (a java.lang.Object)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Thread.parkFor(Thread.java:1220)
[INFO]  art: sart/runtime/runtime.cc:292]   - locked <0x072451b6> (a java.lang.Object)
[INFO]  art: sart/runtime/runtime.cc:292]   at sun.misc.Unsafe.park(Unsafe.java:299)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:197)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2055)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:435)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
[INFO]  art: sart/runtime/runtime.cc:292]   at java.lang.Thread.run(Thread.java:818)
[INFO]  art: sart/runtime/runtime.cc:292]
[INFO]  art: sart/runtime/runtime.cc:292]
[INFO]  libc: Fatal signal 6 (SIGABRT), code -6 in tid 20492 (KrollRuntimeThr)

Thanks!

deckameron commented 7 years ago

Hello guys,

I know it is an old issue and most of you probably have already solved it, but I thought I should share with the ONLY solution I could find. It's Proguard! It is really simple and easy to use (in this case) and the tutorial is here. Hope you enjoy and that it helps you as well.