[Q] App development: strange problems on Froyo - General Questions and Answers

I have recently released my first app (a soundboard) and am now receiving complaints from Froyo users that while the app appears compatible, it does not work properly. The MinSDK version in my manifest is 8, but the build target is 15.
My app starts with a splash screen, then there is a main menu, which then starts the main activity, where there are 7 tabs. Each tab holds about 20 sounds, consisting of a textview and 4 imagebuttons. Together with Ad banners, this comes up to about 500 views in one activity. Eclipse warned me that more than 80 views might be bad for performance, but even low grade phones like the Samsung Galaxy Y are able to run the app effortlessly.
The min SDK I set for my app is level 8, Froyo and now after I got negative feedback and tested it, I found out, on Froyo the activity does not start.
Is there a fixed limit of 80 views per activity for Android 2.2? I could not find information on that anywhere.
This is the error I see in the Developer Console constantly:
Code:
java.lang.VerifyError: com.cheftony.psychsoundfree.Nicknames
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1429)
at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.access$2300(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:660)
at dalvik.system.NativeStart.main(Native Method)
What should I do? I was thinking about modifying the main menu to start different activities based on the android version of the device, i.e. starting my regular old activity on any phone with Gingerbread or higher and creating a new one, where the interface is split up into several activities so there are not too many views per activity, which is a lot of work and basically would split up the app and double the work that goes into updating it.
Or should I just exclude Froyo devices? How important is it to still support Froyo today?
Are these few people left with old OS versions worth more than 50% of the work I'd have to put into my up for future updates?

Related

anybody has the APK for Gesture Search?

it says here for android 2.0 and up but we might be able to get to work on 1.6 .
I'd like to see this, too. Curious if it'll run on CyanogenMod.
here you go,
got it off the market just this min.
Firerat said:
here you go,
got it off the market just this min.
Click to expand...
Click to collapse
Thanks 10char
Firerat said:
here you go,
got it off the market just this min.
Click to expand...
Click to collapse
Thank you very much.
is there a way to port it back for g1?
ralpho said:
is there a way to port it back for g1?
Click to expand...
Click to collapse
its working on my g1
but I have eclair rom ( CaNNoN Complete 1.2 )
I'm guessing you have a cupcake, donut
make yourself a sig
click/tap edit my sig , in my sig
been using since this morning, its not bad.
I often get frustrated scrolling through the app draw, but now with a gestures icon on home screen I can just open it up and start 'writing'
it is a little slow between letters, but I imagine it will get better as it is developed and it is still faster than messing about in the app draw.
gets a thumbs up from me
Welp, I was so eager to get this working on CyanogenMod I dove in and spent the last few hours trying to figure it out :
Installed VirtualBox and Ubuntu
Installed the SDK, apktool, and other various required bits
Decoded the APK
Edited the AndroidManifest.xml to change minSdkVersion from 5 to 4
Rebuilt the APK
Set up a keystore and resigned the APK with my key (this part took awhile and I still don't really know what other options I have if any...)
INSTALLED THE APP SUCCESSFULLY
Bad news though. Although the app opens and starts giving you the opening wizard, it seems the service that "Queries data sources" in the background freaks out and requires a force close. The logcat:
Code:
I/ActivityManager( 100): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10100000 cmp=com.google.android.apps.gesturesearch/.GShell }
I/ActivityManager( 100): Start proc com.google.android.apps.gesturesearch for activity com.google.android.apps.gesturesearch/.GShell: pid=12360 uid=10097 gids={3003}
W/InputManagerService( 100): Window already focused, ignoring focus gain of: [email protected]
I/ActivityThread(12360): Publishing provider com.google.android.apps.gesturesearch.history: com.google.android.apps.gesturesearch.data.QueryHistoryProvider
I/ActivityThread(12360): Publishing provider com.google.android.apps.gesturesearch.index: com.google.android.apps.gesturesearch.data.IndexProvider
W/dalvikvm(12360): VFY: unable to resolve static field 26 (CONTENT_URI) in Landroid/provider/ContactsContract$Data;
D/dalvikvm(12360): VFY: replacing opcode 0x62 at 0x0025
D/dalvikvm(12360): Making a copy of Lcom/google/android/apps/gesturesearch/search/SearchItemView;.setIcon code (440 bytes)
D/dalvikvm(12360): GC freed 1792 objects / 184456 bytes in 175ms
I/ActivityManager( 100): Displayed activity com.google.android.apps.gesturesearch/.GShell: 2116 ms (total 2116 ms)
W/dalvikvm(12360): VFY: unable to resolve static field 25 (CONTENT_URI) in Landroid/provider/ContactsContract$Contacts;
D/dalvikvm(12360): VFY: replacing opcode 0x62 at 0x0003
D/dalvikvm(12360): Making a copy of Lcom/google/android/apps/gesturesearch/search/DataMultiContacts;.queryPhoneNumbers code (128 bytes)
W/dalvikvm(12360): VFY: unable to resolve static field 25 (CONTENT_URI) in Landroid/provider/ContactsContract$Contacts;
D/dalvikvm(12360): VFY: replacing opcode 0x62 at 0x0016
D/dalvikvm(12360): Making a copy of Lcom/google/android/apps/gesturesearch/search/DataMultiContacts;.prepare code (140 bytes)
W/dalvikvm(12360): threadid=15: thread exiting with uncaught exception (group=0x4001e180)
E/AndroidRuntime(12360): Uncaught handler: thread AsyncTask #1 exiting due to uncaught exception
E/AndroidRuntime(12360): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime(12360): at android.os.AsyncTask$3.done(AsyncTask.java:200)
E/AndroidRuntime(12360): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
E/AndroidRuntime(12360): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
E/AndroidRuntime(12360): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
E/AndroidRuntime(12360): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
E/AndroidRuntime(12360): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
E/AndroidRuntime(12360): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
E/AndroidRuntime(12360): at java.lang.Thread.run(Thread.java:1096)
E/AndroidRuntime(12360): Caused by: java.lang.NoClassDefFoundError: android.provider.ContactsContract$Contacts
E/AndroidRuntime(12360): at com.google.android.apps.gesturesearch.search.DataMultiContacts.prepare(DataMultiContacts.java:68)
E/AndroidRuntime(12360): at com.google.android.apps.gesturesearch.search.IndexingTask.doInBackground(IndexingTask.java:126)
E/AndroidRuntime(12360): at com.google.android.apps.gesturesearch.search.IndexingTask.doInBackground(IndexingTask.java:23)
E/AndroidRuntime(12360): at android.os.AsyncTask$2.call(AsyncTask.java:185)
E/AndroidRuntime(12360): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
E/AndroidRuntime(12360): ... 4 more
I/Process ( 100): Sending signal. PID: 12360 SIG: 3
I/dalvikvm(12360): threadid=7: reacting to signal 3
I/dalvikvm(12360): Wrote stack trace to '/data/anr/traces.txt'
These logs are a little above my head, though, and beyond my research capabilities at the moment (feeling a little defeated and TIRED ). Do they look like a result of my modification of the app or a framework limitation of CM's 1.6?
I'd appreciate any feedback, even if it's a "NO, STOP TRYING TO MAKE THIS WORK AND JUST SWITCH TO ECLAIR ALREADY" I attached the modified APK if anyone wants to play with it.
mttmllns said:
Do they look like a result of my modification of the app or a framework limitation of CM's 1.6?
Click to expand...
Click to collapse
Second one.
Code:
java.lang.NoClassDefFoundError: android.provider.ContactsContract$Contacts
http://developer.android.com/intl/de/reference/android/provider/ContactsContract.Contacts.html
It was added in API level 5 (Android 2.0) and apparently it wasn't ported to CM1.4.x .
Brut.all said:
It was added in API level 5 (Android 2.0) and apparently it wasn't ported to CM1.4.x .
Click to expand...
Click to collapse
Cool, thanks for the quick response. Thanks for the great app, too!
Google just put it out for 1.6. Woot!
http://googlemobile.blogspot.com/2010/03/gesture-search-now-available-for.html
Thanks for the heads up.
Spot On
I've been wanting an app like this for a while now. It work great. Now to reassign some buttons and shortcuts and remove redundancies...
Just a heads up. Enabling the ability to search music as well led to one hell of a bugfest. After doing so, it led Rings Extended to force close everytime something requiring changing a sound was messed with. That in turn disbaled all notifications I had set. It also completely "removed" my music from the music app. It was still on my card, but the music app did not recognize this. All this happened after enable said feature and THEN rebooting. Taking the music search off made rings extended no longer FC and all my sounds were back and my music once again showed up. Hope this helps out anyone with a similair occurence.
Up!
Anybody has the apk for Gesture Search 2.0 ? (this version presumably is compatible with N7 but is marked as incompatible on the Play Store)
TIA

[APP] (8/12) CM6 Experiment Nightly Build Checker

I made this app that checks for the latest nightlies. It is for all of us who are obsessed with constantly checking for nightlies. So far it only checks for Nexus One nightlies. It is the first app I have ever made so it will probably force close. Sorry!
I'm not responsible for anything that this does to your device. It works fine for my nexus one.
Test it out and let me know!
Known Bugs: when u first start it, it notifies you of a new build, this will be fixed in the next release.
Can't cancel download
Doesn't auto-select link for all phones. PM me if it's not selecting for your phone. (it defaults to nexus one if it can't set it)
Alpha 5 adds boatloads of features. Auto Download doesn't work yet, its just there to taunt you in the settings. Time Zone display should work correctly. Copy MD5 to clipboard button. Less force closes.
CM Forum Link
Let me know if the notifications work. I didn't really have time to test them as I only get one shot every time a new build is released.
Also please tell me how battery life is with and without auto refresh on.
If anybody knows how to programatically reboot into recovery please PM me!
Release Notes:
Alpha 5 is completely rewritten to add NOTIFICATIONS (maybe, im not sure if they actually work), less force closes, fixed time zone, md5 to clipboard, progress bar, automatically sets directory for more phones
Alpha 4 selects which build to download based on your phone model and lets you choose download method (browser or sd card)
Alpha 3 displays the nightlies in your time zone (let me know if this works right)
Alpha 2 adds a toast and reverses the order so the latest nightly appears at the top
Alpha 1 initial release
Just what I wanted. Thank you so much.
thanks, once you get notifications working, this will be epic. but i think it will be quite difficult without getting cooperation from the hosting provider.
Nice, going to check this one out! Thanks!
rom manager does this
^only works if you're using clockmod recovery, im not
thanx op
hey the time zone for california is off by an hour (early), maybe it doesn't take into consideration daylight savings?? Anyways I would prefer it stayed in gmt. thanks for this
ogdobber said:
hey the time zone for california is off by an hour (early), maybe it doesn't take into consideration daylight savings?? Anyways I would prefer it stayed in gmt. thanks for this
Click to expand...
Click to collapse
Exactly what I was about to post!
Thanks DEV!
Any chance of adding some kind of an easy way to know the last rom I downloaded? I know I can use a file manager to check but I'll admit I'm lazy and i think that it would be very useful
e4604 said:
^only works if you're using clockmod recovery, im not
thanx op
Click to expand...
Click to collapse
Too bad for me.
Dev, can you use CMupdater?
FC on EVO. Latest Nightly.
mattrb said:
FC on EVO. Latest Nightly.
Click to expand...
Click to collapse
sorry, i made a silly mistake in the code. this doesn't work on anything but nexus one for now.
anyways, im completely reworking this app now that i know what im doing to add all the requested features and make it faster and more responsive.
I wanted to report a UI bug. When you select one of the nightly builds from the list and then select another rom, the second rom details are the same as the first one selected.
It looks like the popup values are only set on the first selection.
new update! let me know how it goes
Crashes every time I try to set update frequency to once a day.
Code:
W/System.err( 3722): at com.nelson.GetNightly.GetNightly.onResume(GetNightly.java:143)
W/System.err( 3722): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1149)
W/System.err( 3722): at android.app.Activity.performResume(Activity.java:3823)
W/System.err( 3722): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3118)
W/System.err( 3722): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3143)
W/System.err( 3722): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2059)
W/System.err( 3722): at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err( 3722): at android.os.Looper.loop(Looper.java:123)
W/System.err( 3722): at android.app.ActivityThread.main(ActivityThread.java:4627)
W/System.err( 3722): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 3722): at java.lang.reflect.Method.invoke(Method.java:521)
W/System.err( 3722): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
W/System.err( 3722): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
W/System.err( 3722): at dalvik.system.NativeStart.main(Native Method)
I/ASK ( 2111): onUnbindInput
D/LocationMasfClient( 2033): getNetworkLocation(): Returning cache location with accuracy 1425.0
D/dalvikvm( 2497): GC_FOR_MALLOC freed 5138 objects / 500376 bytes in 51ms
W/Resources( 3722): Converting to string: TypedValue{t=0x10/d=0x3c a=-1}
D/dalvikvm( 3722): GC_FOR_MALLOC freed 8026 objects / 416352 bytes in 36ms
D/dalvikvm( 2111): GC_EXPLICIT freed 40 objects / 1416 bytes in 51ms
I/ActivityManager( 2033): Displayed activity com.nelson.GetNightly/.Preferences: 386 ms (total 386 ms)
I/dalvikvm( 3722): Jit: resizing JitTable from 4096 to 8192
D/AndroidRuntime( 3722): Shutting down VM
W/dalvikvm( 3722): threadid=1: thread exiting with uncaught exception (group=0x4001d7e8)
I/Process ( 3722): Sending signal. PID: 3722 SIG: 9
I/ASK ( 2111): onUnbindInput
D/dalvikvm( 2033): GC_EXTERNAL_ALLOC freed 5065 objects / 238576 bytes in 90ms
D/dalvikvm( 2033): GC_EXTERNAL_ALLOC freed 2149 objects / 94952 bytes in 78ms
D/dalvikvm( 2033): GC_EXTERNAL_ALLOC freed 161 objects / 6464 bytes in 79ms
if i enable auto refresh, do i still need to set refresh frequency? or does it mean that if auto refresh is on, it will automatically refresh based on your frequency?
Karolis said:
Crashes every time I try to set update frequency to once a day.
Click to expand...
Click to collapse
looks like i skipped over the value for 6 hours. so if you set it to 12 hours, it should refresh every 24 hours. this will be fixed in the next release
NguyenHuu said:
if i enable auto refresh, do i still need to set refresh frequency? or does it mean that if auto refresh is on, it will automatically refresh based on your frequency?
Click to expand...
Click to collapse
if you enable auto-refresh it will automatically refresh based on your frequency. i'll try to make this more clear in the next release.
nellyspageli said:
looks like i skipped over the value for 6 hours. so if you set it to 12 hours, it should refresh every 24 hours. this will be fixed in the next release
if you enable auto-refresh it will automatically refresh based on your frequency. i'll try to make this more clear in the next release.
Click to expand...
Click to collapse
notifications seem to work if app is running. maybe next step is to allow for sound? i also noticed that, if the app isnt running in background it wont notify. when i rebooted my phone, the app doesnt auto load so i did not get any notifications. i saw in the forums that new nightly is up, so i loaded up the app and then it finally notify me.
maybe add an option to have it load on boot
Not working anymore! They changed the site!
djdarkknight96 said:
Not working anymore! They changed the site!
Click to expand...
Click to collapse
Not only did they change the site but they changed from build dates to build numbers.

[Q] Ultra Keyboard crashing

I've been using Ultra Keyboard for a long time (used it on my Hero and have been using it on my Nexus S 4G since I bought it back in July), but starting with CM7 build 115 or 116, it started crashing. From the stacktrace, it appears to be related to the user dictionary, but I don't know much about Java, so I'm not sure.
I have tried asking on the CM forum, but haven't had any luck there, so I'm hoping maybe someone here can help me.
Here's the stack trace:
Code:
java.lang.UnsatisfieidLinkError: openNative
at com.android.inputmethod.latin.UserDictionary.OpenNative(Native Method)
at com.android.inputmethod.latin.NativeDictionary.open(NativeDictionary.java:50)
at com.android.inputmethod.latin.UserDictionary.<init>(UserDictionary.java:99)
at com.android.inputmethod.latin.latinIME.onCreate(LatinIME.java:369)
at com.binarybulge.android.apps.keyboard.KeyboardInputMethodService.onCreate(KeyboardInputMethodService.java:157)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2066)
at android.app.ActivityThread.access$2500(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.activityThread.main(ActivityThread.java:3835)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
at dalvik.system.NativeStart.main(Native Method)
I've switched to using Swype for the time being, but I prefer Ultra Keyboard for several reasons and would like to go back to using it if possible. Any suggestions?
No suggestions? Guess I'll move on to the developer and hope they can help.

[cm7/cm9]Tv-out[Port]

HI,as you know on aosp there isnt a normal tvout opption so I think we must mod the frameworkbase like this!
This is only for testing and you could brick your phone!
Use only at your own risk!
HDMI: changes to notify audio on hdmi connect.
- When DVI monitor is connected, audio service should not be notified
- remove the redundant changes to check HDCP during boot up
- On connect, check for HDCP/DVI mode and handle audio accordingly
Change-Id: I2af352570eddd4820a9d5ee232f4e2f351c0c524
CRs-fixed: 324931
Update HDMI Notification mechanism and minor cleanup
-- Update HDMI notification mechanism to be based on switch
node, /devices/virtual/switch/hdmi
-- Remove unused SurfaceComposerClient object.
-- Use path /sys/devices/virtual/graphics instead of symlink
/sys/class/graphics
-- Remove support for intents HDMI_CABLE_CONNECTED,
HDMI_CABLE_DISCONNECTED, HDMI_CONNECTED, HDMI_DISCONNECTED.
-- Add support in AudioPolicyManager to handle non HDMI modes.
CRs-fixed: 325697
(cherry picked from commit dd1ef209a42794415b1a06ff947028b26f028fa9)
Change-Id: I07dc58c700b8a2f4c7e086c688e277ce66b3e4c3
HDMIService: Minor fixes in the HDMI Service
- When the cable is connected, set the best mode for HDMI,
no need to store the current best mode, as this can cause
issues when a different TV is connected.
- start the HDMIDaemon from the Service, this will help ensure
HDMI Mirroring works after framework reboot
CRs-fixed: 333941 333497
(cherry picked from commit eb4ade6e6908c49a2e624a71ff1265e14c0b4ec7)
Conflicts:
services/java/com/android/server/HDMIService.java
Change-Id: Ic87d1703065a284878e7e9c8adac3afb6def56ec
HDMIService: getModeOrder to return order based on resolution
- getModeOrder function used to return order based on the resolution,
modified that to be based on the best resolution
This fixes the problem where the HDMI TV used to support [email protected]
but still it was picking [email protected]
- mCurrentMode stores the current display mode on HDMI, reset it when
the cable is disconnected
(cherry picked from commit 91cb5160ca2b4aaee7cc8c01f6d7162e9c55d67a)
Change-Id: I3efbe385603560330600eab3adeb0da1f1e102aa
FOUND:http://review.cyanogenmod.com/#/c/16945/
We maybe could at files from kqb to cm7?
Would be great if texten or someone could help
nice work will try ..
You trying to port this suggest that TV-out worked for you guys before? : O
Me and a couple of my friends who also have SGS+ tried, and it doesn't work on any of our devices with any type of cable.
Mikolak28 said:
You trying to port this suggest that TV-out worked for you guys before? : O
Me and a couple of my friends who also have SGS+ tried, and it doesn't work on any of our devices with any type of cable.
Click to expand...
Click to collapse
Thats because our device isn´t right build! you need a headset adapter because you need to change +/- Poles! You need a nokia c-75u cable+ this headsetadapter and than its working
Now we are trying to port this to cm7!
tvout on stock is working!
here is a tvout hack for android 4 on samsung devices.
https://github.com/Onecosmic/Android-4.0.3-device-files/tree/master/tvouthack
good luck.
Rom_Tester said:
Thats because our device isn´t right build! you need a headset adapter because you need to change +/- Poles! You need a nokia c-75u cable+ this headsetadapter and than its working
Now we are trying to port this to cm7!
tvout on stock is working!
Click to expand...
Click to collapse
Exactly, and I can confirm it works that way on Samsung stock ROMs.
I also use the Nokia CA-75U 3.5mm to composite cable with a TRRS adapter that changes the pin order. The adapter is necessary to change the pin order of the TRRS headphone jack:
L -> L
R -> R
GND -> MIC
MIC -> GND
Here's a store selling such an adapter, you will have to find a local one: http://www.meelec.com/MEE_TRRS_Adapter_for_P_Version_Headphones_p/adptr-trrs-35.htm
+
(click to enlarge)
The way it works:
1. In system settings, enable TV out and set TV type (NTSC or PAL)
2. Connect headphone adapter to headphone jack and to video adapter
3. Connect video adapter to headphone adapter and to composite plugs in TV (video, audio left, audio right).
The important thing is that unlike the Galaxy S2 which has HDMI out through the miniUSB plug, we have just regular analogue TV out through the headphone jack in low resolution and quality. This is why I don't think any code related to HDMI will help.
We should probably look closer at Galaxy S solutions, I think they also only have TV out through the headphone jack.
Ok I see..
I have wrote to the galaxy s ics slim devs
Maybe they can show us the solution
texten said:
here is a tvout hack for android 4 on samsung devices.
https://github.com/Onecosmic/Android-4.0.3-device-files/tree/master/tvouthack
good luck.
Click to expand...
Click to collapse
I took a look at that and also used the KQB stock ROM files you posted here: http://forum.xda-developers.com/showthread.php?p=26896293#post26896293
Unfortunately where it fails is with the KQB libtvout.so, which has an unresolved symbol:
Code:
[email protected]:/ # tvoutserver
link_image[1965]: 8532 could not load needed library 'libtvoutservice.so' for 'tvoutserver'
(link_image[1965]: 8532 could not load needed library 'libtvout.so' for 'libtvoutservice.so'
(reloc_library[1314]: 8532 [B]cannot locate '_ZN8SkCanvas15setBitmapDeviceERK8SkBitmap'[/B]...))
CANNOT LINK EXECUTABLE
tvoutserver and libtvout.so, libtvoutservice.so etc. are all Samsung binaries we don't have the source for so I don't know how to fix that.
I compiled the tvouthack executable and AriesParts.apk app in your link. tvouthack runs but seems to be waiting for the tvoutserver. AriesParts.apk adds an option under system settings called "Advanced" and when you click it this happens:
Code:
W/dalvikvm( 8362): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Landroid/hardware/TvOut;
D/AndroidRuntime( 8362): Shutting down VM
W/dalvikvm( 8362): threadid=1: thread exiting with uncaught exception (group=0x40a3f1f8)
E/AndroidRuntime( 8362): FATAL EXCEPTION: main
E/AndroidRuntime( 8362): java.lang.ExceptionInInitializerError
E/AndroidRuntime( 8362): at com.cyanogenmod.settings.device.DeviceSettings.onCreate(DeviceSettings.java:78)
E/AndroidRuntime( 8362): at android.app.Activity.performCreate(Activity.java)
E/AndroidRuntime( 8362): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java)
E/AndroidRuntime( 8362): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java)
E/AndroidRuntime( 8362): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java)
E/AndroidRuntime( 8362): at android.app.ActivityThread.access$600(ActivityThread.java)
E/AndroidRuntime( 8362): at android.app.ActivityThread$H.handleMessage(ActivityThread.java)
E/AndroidRuntime( 8362): at android.os.Handler.dispatchMessage(Handler.java)
E/AndroidRuntime( 8362): at android.os.Looper.loop(Looper.java)
E/AndroidRuntime( 8362): at android.app.ActivityThread.main(ActivityThread.java)
E/AndroidRuntime( 8362): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 8362): at java.lang.reflect.Method.invoke(Method.java)
E/AndroidRuntime( 8362): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
E/AndroidRuntime( 8362): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
E/AndroidRuntime( 8362): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 8362): Caused by: java.lang.UnsatisfiedLinkError:
Cannot load library: link_image[1965]: 141 could not load needed library
'libtvout.so' for 'libtvout_jni.so' (reloc_library[1314]: 141 [B]cannot locate
'_ZN8SkCanvas15setBitmapDeviceERK8SkBitmap'...[/B]
E/AndroidRuntime( 8362): )
E/AndroidRuntime( 8362): at java.lang.Runtime.loadLibrary(Runtime.java)
E/AndroidRuntime( 8362): at java.lang.System.loadLibrary(System.java)
E/AndroidRuntime( 8362): at android.hardware.TvOut.<clinit>(TvOut.java:53)
E/AndroidRuntime( 8362): ... 15 more
W/ActivityManager( 850): Force finishing activity com.cyanogenmod.settings.device/.DeviceSettings
Again, it's the missing symbol in libtvout.so.
I've attached all the files i used below.
EDIT: The missing symbol seems to be related to /system/lib/libskia.so.
It has _ZN8SkCanvas15setBitmapDeviceERK8SkBitmapb
but not _ZN8SkCanvas15setBitmapDeviceERK8SkBitmap
texten, can you provide the libskia.so from the kqb ROM please? Although I'm fairly sure changing it will just break everything...
Update: Tested under mazen's CM7 and it's looking better there.
tvoutserver and libraries are already included and they run without error. tvouthack also runs. I don't get a picture on the TV though.
The missing component atm is AriesParts.apk - I don't have a CM7 repository handy to compile it against.
Maybe mazen can help?
dbx4 said:
[..]
texten, can you provide the libskia.so from the kqb ROM please? Although I'm fairly sure changing it will just break everything...
Click to expand...
Click to collapse
i have already uploaded the whole kqb system folder
click to download
mazen912 kindly built an AriesParts.apk for CM7 for me to try out, thanks mazen912!
On CM7 AriesParts adds an entry "Device settings" in the settings menu but when you choose it crashes with:
Code:
W/dalvikvm( 1007): ERROR: Unable to find decl for native Landroid/hardware/TvOut;._setHdmiCableConnected:(I)V
W/dalvikvm( 1007): ERROR: Unable to find decl for native Landroid/hardware/TvOut;._isHdmiEnabled:()Z
W/dalvikvm( 1007): ERROR: Unable to find decl for native Landroid/hardware/TvOut;._isHdmiSuspended:()Z
W/dalvikvm( 1007): ERROR: Unable to find decl for native Landroid/hardware/TvOut;._isHdmiCableConnected:()Z
W/dalvikvm( 1007): ERROR: Unable to find decl for native Landroid/hardware/TvOut;._SetTvoutHdmiStatus:(I)Z
W/dalvikvm( 1007): ERROR: Unable to find decl for native Landroid/hardware/TvOut;._TvOutHdmiSuspend:(Ljava/lang/String;)V
W/dalvikvm( 1007): ERROR: Unable to find decl for native Landroid/hardware/TvOut;._TvOutEnableHDMISubtitleOn:()Z
W/dalvikvm( 1007): ERROR: Unable to find decl for native Landroid/hardware/TvOut;._TvOutPostHDMISubtitle:(Ljava/lang/String;)V
W/dalvikvm( 1007): ERROR: Unable to find decl for native Landroid/hardware/TvOut;._isHDMISubtitleOn:()Z
W/dalvikvm( 1007): ERROR: Unable to find decl for native Landroid/hardware/TvOut;._TvOutDisableHDMISubtitleOn:()V
W/dalvikvm( 1007): ERROR: Unable to find decl for native Landroid/hardware/TvOut;._TvOutPostHDMIBitmap:(Landroid/graphics/Bitmap;)V
W/dalvikvm( 1007): ERROR: Unable to find decl for native Landroid/hardware/TvOut;._isHdmiDualEnabled:()Z
W/dalvikvm( 1007): ERROR: Unable to find decl for native Landroid/hardware/TvOut;._SetTvoutHdmiDualStatus:(I)V
E/JNIHelp ( 1007): RegisterNatives failed for 'android/hardware/TvOut'
E/TvOut-JNI( 1007): ERROR: TvOut native registration failed
W/dalvikvm( 1007): JNI_OnLoad returned bad version (-1) in /system/lib/libtvout_jni.so 0x405140b8
W/dalvikvm( 1007): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Landroid/hardware/TvOut;
D/AndroidRuntime( 1007): Shutting down VM
W/dalvikvm( 1007): threadid=1: thread exiting with uncaught exception (group=0x40015560)
E/AndroidRuntime( 1007): FATAL EXCEPTION: main
E/AndroidRuntime( 1007): java.lang.ExceptionInInitializerError
E/AndroidRuntime( 1007): at com.cyanogenmod.AriesParts.AriesParts.onCreate(AriesParts.java:55)
E/AndroidRuntime( 1007): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime( 1007): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1722)
E/AndroidRuntime( 1007): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784)
E/AndroidRuntime( 1007): at android.app.ActivityThread.access$1500(ActivityThread.java:123)
E/AndroidRuntime( 1007): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939)
E/AndroidRuntime( 1007): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 1007): at android.os.Looper.loop(Looper.java:130)
E/AndroidRuntime( 1007): at android.app.ActivityThread.main(ActivityThread.java:3835)
E/AndroidRuntime( 1007): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 1007): at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime( 1007): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
E/AndroidRuntime( 1007): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
E/AndroidRuntime( 1007): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 1007): Caused by: java.lang.UnsatisfiedLinkError: unknown failure
E/AndroidRuntime( 1007): at java.lang.Runtime.loadLibrary(Runtime.java:434)
E/AndroidRuntime( 1007): at java.lang.System.loadLibrary(System.java:554)
E/AndroidRuntime( 1007): at android.hardware.TvOut.<clinit>(TvOut.java:53)
E/AndroidRuntime( 1007): ... 14 more
W/ActivityManager( 269): Force finishing activity com.cyanogenmod.AriesParts/.AriesParts
I'm assuming all those declarations in the first error lines need to be added to AriesParts/src/android/hardware/TvOut.java
Use at your risk
dbx4 said:
mazen912 kindly built an AriesParts.apk for CM7 for me to try out, thanks mazen912!
[..]
I'm assuming all those declarations in the first error lines need to be added to AriesParts/src/android/hardware/TvOut.java
Click to expand...
Click to collapse
cm7 by mazen > github , ariesparts.apk > https://github.com/code2k/android_device_samsung_ariesve/tree/master/AriesParts
https://github.com/code2k/android_d.../com/cyanogenmod/AriesParts/TvOutService.java
Can someone build this, because i am in ukraina and watch EM 2012
I added the missing declarations to AriesParts/src/android/hardware/TvOut.java:
Code:
public native void _setHdmiCableConnected(int paramInt);
public native boolean _isHdmiEnabled();
public native boolean _isHdmiSuspended();
public native boolean _isHdmiCableConnected();
public native boolean _SetTvoutHdmiStatus(int paramInt);
public native void _TvOutHdmiSuspend(String paramString);
public native boolean _TvOutEnableHDMISubtitleOn();
public native void _TvOutPostHDMISubtitle(String paramString);
public native boolean _isHDMISubtitleOn();
public native void _TvOutDisableHDMISubtitleOn();
public native void _TvOutPostHDMIBitmap(Bitmap paramBitmap);
public native boolean _isHdmiDualEnabled();
public native void _SetTvoutHdmiDualStatus(int paramInt);
Now AriesParts.apk starts up and you can turn on TV out - but nothing happens
Since there are no errors of any kind in the logcat and no picture on the TV, I'm giving up.
Maybe someone else wants to try his luck, I've attached the relevant files:
- AriesParts.apk goes into /system/app
- tvouthack goes into /system/bin
- tvoutserver needs to be running when you try to open Settings -> Device Settings. If the init.qcom.rc didn't start it properly, start it manually in Terminal
dbx4 said:
I added the missing declarations to AriesParts/src/android/hardware/TvOut.java:
Code:
public native void _setHdmiCableConnected(int paramInt);
public native boolean _isHdmiEnabled();
public native boolean _isHdmiSuspended();
public native boolean _isHdmiCableConnected();
public native boolean _SetTvoutHdmiStatus(int paramInt);
public native void _TvOutHdmiSuspend(String paramString);
public native boolean _TvOutEnableHDMISubtitleOn();
public native void _TvOutPostHDMISubtitle(String paramString);
public native boolean _isHDMISubtitleOn();
public native void _TvOutDisableHDMISubtitleOn();
public native void _TvOutPostHDMIBitmap(Bitmap paramBitmap);
public native boolean _isHdmiDualEnabled();
public native void _SetTvoutHdmiDualStatus(int paramInt);
Now AriesParts.apk starts up and you can turn on TV out - but nothing happens
Since there are no errors of any kind in the logcat and no picture on the TV, I'm giving up.
Maybe someone else wants to try his luck, I've attached the relevant files:
- AriesParts.apk goes into /system/app
- tvouthack goes into /system/bin
- init.qcom.rc and ueventd.gt-i9001.rc go into /
- tvoutserver needs to be running when you try to open Settings -> Device Settings. If the init.qcom.rc didn't start it properly, start it manually in Terminal
Click to expand...
Click to collapse
Whats about TvOut.java
and where to place init.qcom.rc and ueventd.gt-i9001.rc
there you forgot to at direction for pasting
Rom_Tester said:
Whats about TvOut.java
and where to place init.qcom.rc and ueventd.gt-i9001.rc
there you forgot to at direction for pasting
Click to expand...
Click to collapse
Yeah I just realized that the init.rc and ueventd.rc stuff must be packed into the kernel ramdisk.
I changed the mazen Cm7_Fixed2.1 boot.img accordingly and attached the new boot.img here. You will have to either replace the boot.img inside Cm7_Fixed2.1.zip before flashing it or if you're already running cm7 flash the new boot.img kernel with broodplank's quickflasher.
I'm done with this for now, maybe someone else can take a crack at it in the future...
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
maybe there are also some codecs missing, i've found these files in many ics roms. these files are missing in ics-roms for our device.
Code:
[B][COLOR="Red"]from kqb[/COLOR][/B]
[B]/system/bin[/B]
tvoutserver
[B]/system/etc[/B]
vold.conf
[B]/system/lib[/B]
lib_tvoutengine.so
libtvout.so
libtvout_jni.so
libtvoutservice.so
[B][COLOR="Red"]from android 4[/COLOR][/B]
[B]/system/lib[/B]
libOMX.SEC.AVC.Decoder.aries.so
libOMX.SEC.AVC.Encoder.aries.so
libOMX.SEC.M4V.Decoder.aries.so
libOMX.SEC.M4V.Encoder.aries.so
libSEC_OMX_Core.aries.so
But we are talking at cm7 at the moment..

[solved] can sombody brings the Gallery2.apk to work without gfx acceleration?

[Short story]
Is there somebody, who has time and inclination to modify the AOSP Gallery2(.apk) app to get that to work on Android versions without graphics acceleration features?
[Long version]
I'm using the latest Replicant ROM. This is shipped with the legacy /system/app/Gallery.apk which has serious problems to show previews of images, and some image contents at all...
Replicant comes without OpenGL ES. So that's the case why the Gallery2.apk (which heavily relies on graphics acceleration features) crashes when I try to start that app with the following traces:
Code:
I/ActivityManager(2868): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.gallery3d/.app.GalleryActivity} from pid 3196
I/ActivityManager(2868): Start proc com.android.gallery3d for activity com.android.gallery3d/.app.GalleryActivity: pid=25408 uid=10066 gids={50066, 1006, 3003, 1015, 1028}
W/Trace (25408): error opening trace file: No such file or directory (2)
V/StateManager(25408): startState class com.android.gallery3d.app.AlbumSetPage
D/libEGL (25408): loaded /system/lib/egl/libGLES_android.so
W/dalvikvm(25408): threadid=12: thread exiting with uncaught exception (group=0x40cfc930)
E/AndroidRuntime(25408): FATAL EXCEPTION: GLThread 503
E/AndroidRuntime(25408): java.lang.IllegalArgumentException: No configs match configSpec
E/AndroidRuntime(25408): at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:865)
E/AndroidRuntime(25408): at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:1026)
E/AndroidRuntime(25408): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1403)
E/AndroidRuntime(25408): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1242)
W/ActivityManager(2868): Force finishing activity com.android.gallery3d/.app.GalleryActivity
I've sent an email to a Replicant developer before, with the question, why Replicant doesn't use Gallery2? The answer was:
"On Replicant, it is too slow to be usable, has parts missing and many bugs because of the incomplete software-only graphics stack implementation we use".
I've temporary tested to add the proprietary OpenGL ES bits (on my Samsung Galaxy S2 [i9100]):
/system/lib/libMali.so
/system/lib/libUMP.so
/system/lib/egl/egl.cfg
/system/lib/egl/libEGL_mali.so
/system/lib/egl/libGLES_android.so
/system/lib/egl/libGLESv1_CM_mali.so
/system/lib/egl/libGLESv2_mali.so
/system/lib/hw/gralloc.exynos4.so
which enables graphics acceleration, and made the Gallery2.apk work. But I deleted them again, because I don't want to use that non free bits. So that's the reason why I'm using Replicant...
I also haven't found any open source alternatives for the Gallery2 app.
Tips are very welcome, too!
(I just asked the developer of
QuickPic: https://play.google.com/store/apps/details?id=com.alensw.PicFolder
if he doesn't want to release his app as open source in the future, but sadly he declined).
Now I'm searching for somebody, which could modify the Gallery2 sources:
https://android.googlesource.com/platform/packages/apps/Gallery2/
to get a patched version of the app to work on BLOB less Android versions.
I don't know the best practice way to find someone for that job. If somebody would give it a try, but don't wants to do that for free, you could leave a donation information and I would try to animate people to make a donation for you, (of course including myself).
Thanks for any answers, hints or any further help.
[reward] I want YOU
Nobody?
Pretty please with sugar on top :fingers-crossed:
Time is a healer...
A working app, which is exactly what I was searching for has landed to the F-Droid store, called
LeafPic: https://f-droid.org/repository/browse/?fdid=com.horaapps.leafpic
(So this thread could be closed)

Categories

Resources