[android-developers] Digest for android-developers@googlegroups.com - 8 updates in 3 topics

Comments: (0)
Nathan <nathan.d.mellor@gmail.com>: Dec 17 12:22PM -0800

I was wondering what all the fuss was over the Dex limit, till I included
Google Play Services.
 
Right away, I got the dreaded error:
 
Conversion to Dalvik format failed:
Unable to execute dex: method ID not in [0, 0xffff]: 65536
 
So now I am referring to the official guide:
 
Building Apps with Over 65K Methods:
https://developer.android.com/tools/building/multidex.html
 
It says, I think, that on Android 5.0 I will be fine.
Good so far.
On pre 5.0, use the multidex support library.
Okay, so I included android-support-multidex.jar in libs folder.
 
The next section is
Configuring Your App for Multidex with Gradle
Hmm, no section for Configuring Your App for Multidex with ADT/Eclipse
They weren't kidding about dropping support for ADT like a rock.
 
A colleague found this
http://stackoverflow.com/questions/13439882/android-error-in-eclipse-unable-to-execute-dex-cannot-merge-new-index-65799-i
Suggesting that we should use
dex.force.jumbo=true
in each project.properties.
It seemed to work for him
I don't know if this applies to the android libraries like appcompat and
Google Play Services.
 
I tried it. Didn't help.
Still getting this when I try to debug:
 
Conversion to Dalvik format failed:
Unable to execute dex: method ID not in [0, 0xffff]: 65536
 
Saw this article too:
http://android-developers.blogspot.com/2014/12/google-play-services-and-dex-method.html
Hmm, these instructions are also only for Gradle. No way to do it in ADT?
 
So my questions are:
*Can I get around this in ADT/Eclipse or should I speed up the migration to
Android Studio. ? *
 
I see this note at the bottom:
 
*Note:* Use of multidex for creating a test APK is not currently supported
 
Does this mean no more debugging my code?
Just ship it to Google Play and hope for the best?
We are all Klingon warriors now - we do not debug - our software does not
coddle the weak. ;)
 
Nathan
Nathan <nathan.d.mellor@gmail.com>: Dec 17 02:31PM -0800

Only thing so far we've found may be responsible.
 
My ADT did not and will not update.
 
I appears that I installed a combined bundle of Eclipse with ADT and the
plugin won't update separately.
 
Errors like the following.
 
Software being installed: Android Development Tools 23.0.4.1468518
(com.android.ide.eclipse.adt.feature.feature.group 23.0.4.1468518)
Software currently installed: eclipse 23.0.0.1245622 (adtproduct
23.0.0.1245622)
Only one of the following can be installed at once:
Android Development Tools 23.0.4.1468518
(com.android.ide.eclipse.adt.feature.feature.jar 23.0.4.1468518)
Android Development Tools 23.0.0.1245622
(com.android.ide.eclipse.adt.feature.feature.jar 23.0.0.1245622)
Cannot satisfy dependency:
From: eclipse 23.0.0.1245622 (adtproduct 23.0.0.1245622)
To: com.android.ide.eclipse.adt.feature.feature.group [23.0.0.1245622]
Cannot satisfy dependency:
From: Android Development Tools 23.0.0.1245622
(com.android.ide.eclipse.adt.feature.feature.group 23.0.0.1245622)
To: com.android.ide.eclipse.adt.feature.feature.jar [23.0.0.1245622]
Cannot satisfy dependency:
From: Android Development Tools 23.0.4.1468518
(com.android.ide.eclipse.adt.feature.feature.group 23.0.4.1468518)
To: com.android.ide.eclipse.adt.feature.feature.jar [23.0.4.1468518]
Kostya Vasilyev <kmansoft@gmail.com>: Dec 18 02:39AM +0400

I feel your pain about Eclipse.
 
Google Play services just recently was split into multiple libraries.
 
Assuming you don't need Google Games and Google Wear and Google Fitness and
Google Helicopters and Google Sandwiches and Google Wallet and Google
Kitchen Sink all at the same time -- you should be able to include just the
ones you need.
 
You can find them under:
 
<sdk root>/extras/google/m2repository/com/google/android/gms/
 
This is part of "... something ... Repository" in the SDK Manager.
 
Now, those are .aar files, but they're simple archives -- you should be
able to the contents and use it as an Eclipse library project:
 
unzip -l play-services-wearable-6.1.71.aar
Archive: play-services-wearable-6.1.71.aar
Length Date Time Name
--------- ---------- ----- ----
5763 2014-10-08 22:05 R.txt
1088 2014-10-08 22:05 AndroidManifest.xml
1356943 2014-10-08 22:05 classes.jar
0 2014-10-08 22:05 res/
0 2014-09-25 19:07 res/values-bg/
5350 2014-09-25 19:07 res/values-bg/common_strings.xml
0 2014-09-25 19:07 res/drawable-tvdpi/
823 2014-09-25 19:07
res/drawable-tvdpi/ic_plusone_medium_off_client.png
828 2014-09-25 19:07
res/drawable-tvdpi/ic_plusone_small_off_client.png
874 2014-09-25 19:07
res/drawable-tvdpi/ic_plusone_standard_off_client.png
873 2014-09-25 19:07
res/drawable-tvdpi/ic_plusone_tall_off_client.png
...
 
Should work, although I haven't done this.
 
What I have done, and it worked -- needing just OAUTH stuff, before this
split happened -- was to:
 
- use the Eclipse project for Play Services under:
 
/home/kman/Android/android-sdk-linux/extras/google/google_play_services/libproject/google-play-services_lib/libs
 
- extract the monolithic google-play-services.jar and repackage just the
files I needed into a new .jar and using that one instead
 
- carefully delete unused resources (languages that my app doesn't have
translations for anyway, a bunch of images...)
 
-- K
 
 
 
Shri <shri.borde@gmail.com>: Dec 17 11:37AM -0800

I am able to use a ShareActionProvider in a normal action bar to show a
Share button. Clicking on it drops down a menu with a list of apps that I
can share too. Now, I am trying to use the ShareActionProvider in an
ActionMode (contextual action bar
<http://developer.android.com/design/patterns/actionbar.html#contextual>
shown when you long-press an item). This does not work. Clicking on the
menu button does not drop down a menu. Is this supposed to work?
 
As a workaround, I think I can use Intent.createChoser() to get a dialog
box with the list of apps. However, it would be preferable if I can get the
drop down menu.
 
Thanks,
Shri
pedr0 <pulsarpietro@gmail.com>: Dec 17 06:20AM -0800

Hi everyone,
 
I am working using the
 
android android update project
 
which, if I am not mistaking, creates the build.xml file which actually
builds my project, as a part of the build process I do need to call
another script before let ant compiling, this script copies a couple of .so
file from another directory to my library/armebi folder.
 
Right now I am doing this by hand everytime. I could modify the build.xml
file and let it copies those files but before starting (I know little about
ant) I am questioning if I will to lose all my job everytime I execute an
 
android android update project
 
command, which overwrites the build.xml, can I instruct the android tool to
"attach" a script and execute it before compiling ?
Gustavo Oliveira <gus512@gmail.com>: Dec 17 01:01PM -0200

Hello,
 
I think you need to use custom_rules.xml file.
 
Check
http://playaprogrammer.blogspot.com.br/2013/01/android-build-configuration-tutorial.html
 
Regards,
Gustavo
 
pedr0 <pulsarpietro@gmail.com>: Dec 17 07:38AM -0800

Hi thanks,
 
I think it is a good starting point nevertheless that helps me in
configuring new targets withtout changing the build.xml file, what I would
like to do is to create a new target where debug - created by default -
depends on.
 
So when I run
 
ant debug
 
My custom_target defined in the custom_rules.xml would be executed,
suggestions ?
 
On Wednesday, December 17, 2014 3:07:33 PM UTC, Gus wrote:
pedr0 <pulsarpietro@gmail.com>: Dec 17 08:00AM -0800

I have got my trick, I am calling the target which should depend on me
using antcall, so:
 
ant custom_debug
{ .. do my stuff ..}
antcall target="debug"
 
:-)
 
 
 
On Wednesday, December 17, 2014 3:38:18 PM UTC, pedr0 wrote:
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to android-developers+unsubscribe@googlegroups.com.

[android-developers] Digest for android-developers@googlegroups.com - 2 updates in 2 topics

Comments: (0)
Zee <zaidiraja1@gmail.com>: Dec 16 09:54PM -0800

I am using asynchttpclient to fetch data from server.. but getting this
error Application may be doing too much work on its main thread
Dritan <djdeathx@gmail.com>: Dec 16 11:26AM -0800

Something so simple YET it's the end of 2014 and we still have to rely on
3rd party libraries until FNG (FukiN Google - still feels like they're
still the effin new guy on the block with #fails like these) decides that
there's been enough variations of Exif libraries to finally update it. Look
at Sherlock! It's the EXACT problem with a different library.
 
All I want to do is add GPS bearing to my photos. "Sorry, you can't make
such a difficult task on Android. It truly baffles even the most cunning
engineer, we are out of ideas and we don't know how to incorporate such
difficult libraries into native Android." I hear you Google, I hear the
#fail.
So this piece of crap -
http://developer.android.com/reference/android/media/ExifInterface.html -
literally, it IS a piece of crap since it's useless if you want to do any
*real* work with Exif, has not been updated forever in computer years. The
Exif standard tags can be found on http://www.exiv2.org/tags.html. Look at
how much the ExifInterface is missing.
 
Can you please update your ExifInterface with your next release of Lollipop?
 
Thanks for not being SUPER outdated! I still have Android 1.6 on my HTC
Magic that I got in my Google IO 2008 and one year later you added the
ExifInterface. Should I move onto that awesome platform instead? (since
we're programming with old sdks anyways)
 
Dritan
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to android-developers+unsubscribe@googlegroups.com.

[android-developers] Digest for android-developers@googlegroups.com - 6 updates in 2 topics

Comments: (0)
Doug <beafdefx@gmail.com>: Dec 14 09:30AM -0800

It's been a long time since I've been active on it, but I believe you can
intercept everything that passes through a url, both what would be loaded
by navigation, image, and ajax. Give it a try and implement all the
callbacks exposed by webview, log a simple message, and see how it goes.
 
Doug
 
On Saturday, December 13, 2014 1:53:56 PM UTC-8, Krystian Lewandowski wrote:
Krystian Lewandowski <krystian.lew@gmail.com>: Dec 14 10:39AM -0800

Hi Doug,
I mean, I can get the page and there is onLoadResource I missed last time,
but another question is - even if I get a resource, how to inject it?
Callbacks, in this case, serve kind of notification purpose there is no way
to replace loaded resource (whatever it actually is) or inject custom
"loader" instead. At least at the moment I don't see a solution.
 
Thank you for ideas,
Krystian
 
W dniu niedziela, 14 grudnia 2014 18:30:15 UTC+1 użytkownik Doug napisał:
Doug <beafdefx@gmail.com>: Dec 14 01:33PM -0800

Did you actually try WebViewClient.shouldInterceptRequest? I'm looking
through old code of mine that suggests it will work. Also, you should try
searching for "WebViewClient shouldInterceptRequest" to see what places
like StackOverflow say.
 
Doug
 
On Sunday, December 14, 2014 10:39:21 AM UTC-8, Krystian Lewandowski wrote:
Krystian Lewandowski <krystian.lew@gmail.com>: Dec 14 01:45PM -0800

Hi,
the problem is that it is possible to get HTML skeleton (or whatever it is,
because we do not control remote side) via specific route with additional
implementation in shouldInterceptRequest. It is possible to inject loaded
the content via WebView.loadDataWithBaseURL, but that's it. The question is
how to inject additional resources to WebView?
 
Thank you,
Krystian
 
W dniu niedziela, 14 grudnia 2014 22:33:36 UTC+1 użytkownik Doug napisał:
Doug <beafdefx@gmail.com>: Dec 14 07:07PM -0800

OK, that's very different than what you first asked.
 
You will have to write shim to connect your app and the webview. The page
hosting the webview will have to provide a function to call that makes the
necessary adjustments. Then on the app side you call loadUrl with a
javascript url to call that function with whatever parameters it needs.
 
Google "android webview inject javascript" for more details. (Google
answers most of your questions if you just ask it.)
 
Doug
 
On Sunday, December 14, 2014 1:45:46 PM UTC-8, Krystian Lewandowski wrote:
Fran <fmmarzoa@gmail.com>: Dec 14 08:34AM -0800

Hi there,
 
I am receiving hundred of error reports of the type "
java.lang.NoClassDefFoundError" from my users that so far I have been
unable to reproduce. These started to happen a couple of releases ago, with
a change that is not relevant at all for the case because it is an update
of a jar library that has nothing to see with that class.
 
Also *I know positively that such class is in the apk*, because I have
checked it by unzipping the apk and using dexdump to see what is inside
classes.dex (unnecessary effort anyway, since if the class definition
wasn't there, the crash would happen always).
 
It seems like *the older the Android version, the highest
the possibility of crash*: 2.3.6 gets about 50% of all the crashes (I
attach a screenshot with those). *But* I have tried it in a 2.3.6 Android
emulator and it didn't crashed, so it seems version number is not
sufficient condition by itself to reproduce the crash.
 
I have come to the conclusion that there is nothing wrong in my code, what
could seem convenient to exonerate myself but actually is quite
inconvenient since I do not really know how to solve this. The answer to
the question "why would a NoClassDefFound exception been thrown in presence
of such class?" is still hidden to me. I have also investigated this until
the edge of my knowledge, thus I need some help from some guru out there,
if any.
 
Thanks a million in advance,
 
ps. The stack dump, just in case:
 
0java.lang.NoClassDefFoundError: com.facebook.internal.Utility$11 at
com.facebook.internal.Utility.void
loadAppSettingsAsync(android.content.Context,java.lang.String)(Unknown
Source)2 at com.facebook.Settings.void
sdkInitialize(android.content.Context)(Unknown Source)3 at
com.facebook.UiLifecycleHelper.<init>(Unknown Source)4 at
net.iberdroid.androidgames.framework.impl.AndroidGame.void
onCreate(android.os.Bundle)(Unknown Source)5* at
com.marzoa.ruletafree.RuletaAfortunadaGame.void
onCreate(android.os.Bundle)(Unknown Source)*6 at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)7
at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623)8
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675)
9 at android.app.ActivityThread.access$1500(ActivityThread.java:121)10 at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:943)11 at
android.os.Handler.dispatchMessage(Handler.java:99)12 at
android.os.Looper.loop(Looper.java:130)13 at
android.app.ActivityThread.main(ActivityThread.java:3768)14 at
java.lang.reflect.Method.invokeNative(Native Method)15 at
java.lang.reflect.Method.invoke(Method.java:507)16 at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
17 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)18 at
dalvik.system.NativeStart.main(Native Method)19*Caused by:
java.lang.ClassNotFoundException: com.facebook.internal.Utility$1 in loader
dalvik.system.PathClassLoader[/data/app/com.marzoa.ruletafree-1.apk]*20 at
dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)21 at
java.lang.ClassLoader.loadClass(ClassLoader.java:551)22 at
java.lang.ClassLoader.loadClass(ClassLoader.java:511)23 ... 18 more
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to android-developers+unsubscribe@googlegroups.com.