FORUMS

How to make an old app work on android pie?

53 posts
Thanks Meter: 5
 
By robrazil, Member on 5th March 2020, 12:14 AM
Post Reply Email Thread
I would like to know what I need do for an old app to work on Android Pie and how can I do that too.
The developer abandoned the app but it is very useful to me. In my last smartphone (android Lollipop 5.1.1) the app worked well but in my new smartphone (android Pie 9) it installs but when I open it immediatlly is showed a message that it stoped and need to be closed.
I use "APK Easy Tool v1.56 Portable" to edit apks but I don't know what exactly to do.
I thought that was about this message: "This app was built for an older version of Android and may not work properly. Try checking for updates, or contact the developer."
So, I changed the API version to 28 and the message disappeared but the stop and close app problem continue.
Thank you for any help.
5th March 2020, 02:07 AM |#2  
Quote:
Originally Posted by robrazil

I would like to know what I need do for an old app to work on Android Pie and how can I do that too.
The developer abandoned the app but it is very useful to me. In my last smartphone (android Lollipop 5.1.1) the app worked well but in my new smartphone (android Pie 9) it installs but when I open it immediatlly is showed a message that it stoped and need to be closed.
I use "APK Easy Tool v1.56 Portable" to edit apks but I don't know what exactly to do.
I thought that was about this message: "This app was built for an older version of Android and may not work properly. Try checking for updates, or contact the developer."
So, I changed the API version to 28 and the message disappeared but the stop and close app problem continue.
Thank you for any help.

Did you boot to recovery and wipe the cache partition after installing the modified app?

This isn't exactly what you are looking for, but it is very close, you just need to modify the method a little to go from Lollipop to Pie the way this video describes going from Oreo to Nougat. What you want is to port your older app to work with newer android instead of porting a newer app to work with older android as the video describes.

https://m.youtube.com/watch?v=kck1EyhFDm4

Sent from my SM-S767VL using Tapatalk
5th March 2020, 05:05 PM |#3  
robrazil's Avatar
OP Member
Thanks Meter: 5
 
More
Quote:
Originally Posted by Droidriven

Did you boot to recovery and wipe the cache partition after installing the modified app?

Thank you for answer me but my smartphone isn't root and haven't options on recovery boot mode.
Quote:

This isn't exactly what you are looking for, but it is very close, you just need to modify the method a little to go from Lollipop to Pie the way this video describes going from Oreo to Nougat. What you want is to port your older app to work with newer android instead of porting a newer app to work with older android as the video describes.

https://m.youtube.com/watch?v=kck1EyhFDm4

Sent from my SM-S767VL using Tapatalk

I saw the video.
Like I said, had already changed the API version to 28 using the "APK Easy Tool v1.56 Portable" and editing the apktool.yml file on lines:
PHP Code:
sdkInfo:
  
minSdkVersion'26'
  
targetSdkVersion'28' 
Both lines had number '8'.
Even so, as explained in the video, I downloaded and installed the Apk Editor PRO app and following step by step, changing "Minimum SDK Version" from 8 to 26 and "Target SDK Version" from 8 to 29, but the same problem continues.
When I press the app icon, it not open and is showed this popup message:
Click image for larger version

Name:	Screenshot_20200305-124527.jpg
Views:	26
Size:	52.4 KB
ID:	4964951
So, only change the SDK version isn't solving.
I don't know if structure of folders or anything else is different between apps for Lollipop and Pie that block to be installed, because I have 2 others old app that I installed and despite the old app alert message they are working rigth.
5th March 2020, 06:09 PM |#4  
Quote:
Originally Posted by robrazil

Thank you for answer me but my smartphone isn't root and haven't options on recovery boot mode.



I saw the video.

Like I said, had already changed the API version to 28 using the "APK Easy Tool v1.56 Portable" and editing the apktool.yml file on lines:

PHP Code:
sdkInfo:  minSdkVersion'26'  targetSdkVersion'28' 
Both lines had number '8'.

Even so, as explained in the video, I downloaded and installed the Apk Editor PRO app and following step by step, changing "Minimum SDK Version" from 8 to 26 and "Target SDK Version" from 8 to 29, but the same problem continues.

When I press the app icon, it not open and is showed this popup message:

Attachment 4964951

So, only change the SDK version isn't solving.

I don't know if structure of folders or anything else is different between apps for Lollipop and Pie that block to be installed, because I have 2 others old app that I installed and despite the old app alert message they are working rigth.

There is a PC version of APKtool that can be used to modify the apk file, you don't need root or apps that use root or custom recovery to achieve this.

Yes, each android version has slightly different partition structure, you need to edit the apk file so that it references the correct partitions/folders and files to find and use the other software resources on your devive that it needs.

You just need to modify the apk file then transfer it to your phone's internal storage then install it using your phones file manager app. You will have to enable the "unknown sources" setting in system settings.

Sent from my SM-S767VL using Tapatalk
5th March 2020, 08:33 PM |#5  
robrazil's Avatar
OP Member
Thanks Meter: 5
 
More
Quote:

There is a PC version of APKtool that can be used to modify the apk file, you don't need root or apps that use root or custom recovery to achieve this.

Thank you but like I said, already use "APK Easy Tool v1.56 Portable" for windows:
https://forum.xda-developers.com/and...s-gui-t3333960
Quote:

You just need to modify the apk file then transfer it to your phone's internal storage then install it using your phones file manager app. You will have to enable the "unknown sources" setting in system settings.

I already did some small modifications in some apps too.
Quote:

Yes, each android version has slightly different partition structure, you need to edit the apk file so that it references the correct partitions/folders and files to find and use the other software resources on your devive that it needs.

That is the point.
I think some questions need to be answered to resolve this issue:
1- What is really happening to block, to stop the application from running?
2- What needs to be changed in the application?
3- How can changes be made?
4- This webpage content could help?
https://developer.android.com/about/...-9.0-migration
5- There is some windows program where an android app can be installed, choosing the sistem android who do you want to install it (lollipop, marshmallow, Pie, etc), and is showed the app errors that to be fix for it work on the android version choosen?

Thanks for any help.
7th March 2020, 01:47 PM |#6  
robrazil's Avatar
OP Member
Thanks Meter: 5
 
More
I tested the apk in virtual android of webpage https://appetize.io/ and it worked in virtual Android 6.0, 7.1, 8.1 until on android 10. Only android 9.0 didn't work. I don't belive that. Seems a joke.
On android 10, after install, is showed the permission screen asking to give it to the camera and the storage. After press "next", the app is open and works right. I tried changing the permissions on Android 9 but didn't work to make the app opening.
Does anyone have any idea what might be happening?
This app was created to SDK 8 (android 2.2 - Froyo)

I don't know if that can be help but below I pasted the debug log of there. I simulated in Android 4.4, 9.0 and 10, to serve as comparison between the android versions. In 4.4 and 10 versions worked, but didn't on 9 version:
Code:
Log messages will follow once session has started... (ANDROID 4.4)
W/GAV2    ( 2986): Thread[main,5,main]: Need to call initialize() and be in fallback mode to start dispatch.
E/SQLiteLog( 2986): (1) no such table: MOEDA
E/SQLiteLog( 2986): (1) no such table: boletos
D/dalvikvm( 2986): GC_CONCURRENT freed 176K, 9% free 3443K/3780K, paused 0ms+0ms, total 2ms
D/dalvikvm( 2986): GC_FOR_ALLOC freed 1K, 9% free 3441K/3780K, paused 4ms, total 4ms
I/dalvikvm-heap( 2986): Grow heap (frag case) to 5.931MB for 2536932-byte allocation
D/dalvikvm( 2986): GC_FOR_ALLOC freed <1K, 6% free 5919K/6260K, paused 3ms, total 3ms
D/dalvikvm( 2986): GC_CONCURRENT freed 0K, 6% free 5919K/6260K, paused 1ms+1ms, total 3ms
D/dalvikvm( 2986): GC_FOR_ALLOC freed 2K, 6% free 6087K/6420K, paused 3ms, total 3ms
I/dalvikvm-heap( 2986): Grow heap (frag case) to 7.287MB for 1249292-byte allocation
D/dalvikvm( 2986): GC_CONCURRENT freed 1K, 5% free 7306K/7644K, paused 2ms+1ms, total 5ms
W/ContextImpl( 2986): Implicit intents with startService are not safe: Intent { act=com.android.vending.billing.InAppBillingService.BIND } android.content.ContextWrapper.bindService:517 com.a.a.a.d.<init>:-1 br.com.magic.boletos.BoletosActivity.onResume:-1 
W/ContextImpl( 2986): Implicit intents with startService are not safe: Intent { act=com.android.vending.billing.InAppBillingService.BIND } android.content.ContextWrapper.bindService:517 br.com.magic.boletos.b.a.d.a:-1 com.a.a.a.d.<init>:-1 
D/        ( 2986): HostConnection::get() New Host Connection established 0xb84724c0, tid 2986
I/GAV2    ( 2986): Thread[GAThread,5,main]: connecting to Analytics service
W/ContextImpl( 2986): Implicit intents with startService are not safe: Intent { act=com.google.android.gms.analytics.service.START (has extras) } android.content.ContextWrapper.bindService:517 com.google.analytics.tracking.android.AnalyticsGmsCoreClient.b:-1 com.google.analytics.tracking.android.GAServiceProxy.j:-1 
I/GAV2    ( 2986): Thread[GAThread,5,main]: connect: bindService returned true for Intent { act=com.google.android.gms.analytics.service.START (has extras) }
I/GAV2    ( 2986): Thread[GAThread,5,main]: No campaign data found.
D/GAV2    ( 2986): Thread[main,5,main]: service connected, binder: [email protected]
D/GAV2    ( 2986): Thread[main,5,main]: bound to service
I/GAV2    ( 2986): Thread[main,5,main]: Connected to service
I/GAV2    ( 2986): Thread[GAThread,5,main]: putHit called
I/GAV2    ( 2986): Thread[GAThread,5,main]: Sending hit to service
I/GAV2    ( 2986): Thread[GAThread,5,main]: putHit called
I/GAV2    ( 2986): Thread[GAThread,5,main]: Sending hit to service
I/GAV2    ( 2986): Thread[GAThread,5,main]: putHit called
I/GAV2    ( 2986): Thread[GAThread,5,main]: Sending hit to service
I/GAV2    ( 2986): Thread[GAThread,5,main]: putHit called
I/GAV2    ( 2986): Thread[GAThread,5,main]: Sending hit to service
I/GAV2    ( 2986): Thread[GAThread,5,main]: putHit called
I/GAV2    ( 2986): Thread[GAThread,5,main]: Sending hit to service

Log messages will follow once session has started... (ANDROID 9.0)
W/m.magic.boleto( 5064): Unexpected CPU variant for X86 using defaults: x86
I/m.magic.boleto( 5064): The ClassLoaderContext is a special shared library.
W/m.magic.boleto( 5064): Suspending all threads took: 15.752ms
W/GAV2    ( 5064): Thread[main,5,main]: Need to call initialize() and be in fallback mode to start dispatch.
E/SQLiteLog( 5064): (1) no such table: MOEDA
E/SQLiteLog( 5064): (1) no such table: boletos
E/SQLiteLog( 5064): (1) no such table: MOEDA
W/ContextImpl( 5064): Implicit intents with startService are not safe: Intent { act=com.android.vending.billing.InAppBillingService.BIND } android.content.ContextWrapper.bindService:698 com.a.a.a.d.<init>:30 br.com.magic.boletos.BoletosActivity.onResume:5 
W/ContextImpl( 5064): Implicit intents with startService are not safe: Intent { act=com.android.vending.billing.InAppBillingService.BIND } android.content.ContextWrapper.bindService:698 br.com.magic.boletos.b.a.d.a:31 com.a.a.a.d.<init>:55 
E/SQLiteLog( 5064): (1) no such table: FAVORECIDO
E/SQLiteLog( 5064): (1) no such table: BOLETO
D/AndroidRuntime( 5064): Shutting down VM
E/AndroidRuntime( 5064): FATAL EXCEPTION: main
E/AndroidRuntime( 5064): Process: br.com.magic.boletos, PID: 5064
E/AndroidRuntime( 5064): java.lang.RuntimeException: Unable to resume activity {br.com.magic.boletos/br.com.magic.boletos.BoletosActivity}: android.database.sqlite.SQLiteException: no such table: BOLETO (code 1 SQLITE_ERROR): , while compiling: SELECT _id , vencimento  FROM BOLETO  GROUP BY vencimento ORDER BY vencimento ASC
E/AndroidRuntime( 5064): 	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3784)
E/AndroidRuntime( 5064): 	at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3816)
E/AndroidRuntime( 5064): 	at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51)
E/AndroidRuntime( 5064): 	at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
E/AndroidRuntime( 5064): 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
E/AndroidRuntime( 5064): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
E/AndroidRuntime( 5064): 	at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime( 5064): 	at android.os.Looper.loop(Looper.java:193)
E/AndroidRuntime( 5064): 	at android.app.ActivityThread.main(ActivityThread.java:6669)
E/AndroidRuntime( 5064): 	at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 5064): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/AndroidRuntime( 5064): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
E/AndroidRuntime( 5064): Caused by: android.database.sqlite.SQLiteException: no such table: BOLETO (code 1 SQLITE_ERROR): , while compiling: SELECT _id , vencimento  FROM BOLETO  GROUP BY vencimento ORDER BY vencimento ASC
E/AndroidRuntime( 5064): 	at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
E/AndroidRuntime( 5064): 	at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:903)
E/AndroidRuntime( 5064): 	at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:514)
E/AndroidRuntime( 5064): 	at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
E/AndroidRuntime( 5064): 	at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
E/AndroidRuntime( 5064): 	at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
E/AndroidRuntime( 5064): 	at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:46)
E/AndroidRuntime( 5064): 	at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1408)
E/AndroidRuntime( 5064): 	at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1347)
E/AndroidRuntime( 5064): 	at br.com.magic.boletos.d.f.a(Unknown Source:83)
E/AndroidRuntime( 5064): 	at br.com.magic.boletos.d.f.a(Unknown Source:136)
E/AndroidRuntime( 5064): 	at br.com.magic.boletos.BoletosActivity.b(Unknown Source:156)
E/AndroidRuntime( 5064): 	at br.com.magic.boletos.BoletosActivity.onResume(Unknown Source:10)
E/AndroidRuntime( 5064): 	at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1412)
E/AndroidRuntime( 5064): 	at android.app.Activity.performResume(Activity.java:7292)
E/AndroidRuntime( 5064): 	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3776)
E/AndroidRuntime( 5064): 	... 11 more
I/Process ( 5064): Sending signal. PID: 5064 SIG: 9

Log messages will follow once session has started... (ANDROID 10)
W/m.magic.boleto( 6832): Unexpected CPU variant for X86 using defaults: x86
I/m.magic.boleto( 6832): The ClassLoaderContext is a special shared library.
W/GAV2    ( 6832): Thread[main,5,main]: Need to call initialize() and be in fallback mode to start dispatch.
W/main    ( 6832): type=1400 audit(0.0:73): avc: granted { read } for name="u:object_r:net_dns_prop:s0" dev="tmpfs" ino=6662 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:net_dns_prop:s0 tclass=file app=com.ustwo.lwp
E/SQLiteLog( 6832): (1) no such table: MOEDA
E/SQLiteLog( 6832): (1) no such table: boletos
W/ContextImpl( 6832): Implicit intents with startService are not safe: Intent { act=com.android.vending.billing.InAppBillingService.BIND } android.content.ContextWrapper.bindService:705 com.a.a.a.d.<init>:30 br.com.magic.boletos.BoletosActivity.onResume:5 
W/ContextImpl( 6832): Implicit intents with startService are not safe: Intent { act=com.android.vending.billing.InAppBillingService.BIND } android.content.ContextWrapper.bindService:705 br.com.magic.boletos.b.a.d.a:31 com.a.a.a.d.<init>:55 
W/Gralloc3( 6832): mapper 3.x is not supported
D/HostConnection( 6832): createUnique: call
D/HostConnection( 6832): HostConnection::get() New Host Connection established 0xd47f4380, tid 6832
D/HostConnection( 6832): HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_YUV420_888_to_NV21 ANDROID_EMU_YUV_Cache ANDROID_EMU_async_unmap_buffer GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_gles_max_version_2 
D/eglCodecCommon( 6832): allocate: Ask for block of size 0x1000
D/eglCodecCommon( 6832): allocate: ioctl allocate returned offset 0x3ffffa000 size 0x2000
D/eglCodecCommon( 6832): allocate: Ask for block of size 0x752000
D/eglCodecCommon( 6832): allocate: ioctl allocate returned offset 0x3ff0b2000 size 0x753000
W/System  ( 6832): A resource failed to call close. 
W/System  ( 6832): A resource failed to call close. 
I/GAV2    ( 6832): Thread[GAThread,5,main]: connecting to Analytics service
W/ContextImpl( 6832): Implicit intents with startService are not safe: Intent { act=com.google.android.gms.analytics.service.START (has extras) } android.content.ContextWrapper.bindService:705 com.google.analytics.tracking.android.AnalyticsGmsCoreClient.b:41 com.google.analytics.tracking.android.GAServiceProxy.j:55 
D/GAV2    ( 6832): Thread[main,5,main]: service connected, binder: [email protected]
D/GAV2    ( 6832): Thread[main,5,main]: bound to service
I/GAV2    ( 6832): Thread[GAThread,5,main]: connect: bindService returned true for Intent { act=com.google.android.gms.analytics.service.START (has extras) }
I/GAV2    ( 6832): Thread[main,5,main]: Connected to service
I/GAV2    ( 6832): Thread[GAThread,5,main]: No campaign data found.
I/GAV2    ( 6832): Thread[GAThread,5,main]: putHit called
I/GAV2    ( 6832): Thread[GAThread,5,main]: Sending hit to service
I/GAV2    ( 6832): Thread[GAThread,5,main]: putHit called
I/GAV2    ( 6832): Thread[GAThread,5,main]: Sending hit to service
I/GAV2    ( 6832): Thread[GAThread,5,main]: putHit called
I/GAV2    ( 6832): Thread[GAThread,5,main]: Sending hit to service
I/GAV2    ( 6832): Thread[GAThread,5,main]: putHit called
I/GAV2    ( 6832): Thread[GAThread,5,main]: Sending hit to service
I/GAV2    ( 6832): Thread[GAThread,5,main]: putHit called
I/GAV2    ( 6832): Thread[GAThread,5,main]: Sending hit to service
30th March 2020, 07:40 AM |#7  
Junior Member
Thanks Meter: 5
 
More
hello, you have source code or just apk? seems it has a bug appears as it's db sql excute on android 9. may be it doesn't adapter android 9.
if you are a developer and you have the source code(only apk can use decompile tool get a project code), you can fix it, but if you are not a developer, may be contact to the owner developer is the only way to help you!
31st March 2020, 02:17 AM |#8  
robrazil's Avatar
OP Member
Thanks Meter: 5
 
More
@walker ice
Hi.
Thank you for answer me.
I am not a developer. I am "curiousloper" (curious + developer)... kkkk.
Well... I have only the apk. I spoke with the app developer (company) and they said that this app was abandoned a long time ago.
This app is a barcode reader that I use to pay my bank slips.
The app is installed in mobile and the server program in windows.
When the app read the barcode, it send that to PC where cursor was marked, in this case to my internet bank page.
I tested others apps similar but they read wrong the barcode.
I used the "APK Easy Tool v1.56 Portable" for window to decompile the apk. I changed the SDK to 28 but the issue continues.
I saw in some posts talking about the possible problem with data base bank on android pie and to rename the file adding .db in the end would solve but I did it too and no worked to me.
I searched for a solution but I didn't find.
Can be in my face but like I am not a developer, I cannot see the solution.
I don't need that someone do it for me.
I only need someone that look the apk and tell me what I should to do, what I need to change in apk to do it works on android pie.
I want to learn how to do.
31st March 2020, 03:37 AM |#9  
Senior Member
Thanks Meter: 103
 
More
Perhaps the app has two or more android projects.
Would you like to ask the app developer for the source code as the company has abandoned this app?
If you have the source code, you can check and modify it with ease in Android Studio by yourself.
31st March 2020, 05:08 AM |#10  
Senior Member
Thanks Meter: 103
 
More
Sorry. Duplication of post.
31st March 2020, 06:34 AM |#11  
Junior Member
Thanks Meter: 5
 
More
Quote:
Originally Posted by robrazil

@walker ice
Hi.
Thank you for answer me.
I am not a developer. I am "curiousloper" (curious + developer)... kkkk.
Well... I have only the apk. I spoke with the app developer (company) and they said that this app was abandoned a long time ago.
This app is a barcode reader that I use to pay my bank slips.
The app is installed in mobile and the server program in windows.
When the app read the barcode, it send that to PC where cursor was marked, in this case to my internet bank page.
I tested others apps similar but they read wrong the barcode.
I used the "APK Easy Tool v1.56 Portable" for window to decompile the apk. I changed the SDK to 28 but the issue continues.
I saw in some posts talking about the possible problem with data base bank on android pie and to rename the file adding .db in the end would solve but I did it too and no worked to me.
I searched for a solution but I didn't find.
Can be in my face but like I am not a developer, I cannot see the solution.
I don't need that someone do it for me.
I only need someone that look the apk and tell me what I should to do, what I need to change in apk to do it works on android pie.
I want to learn how to do.

can you provider me an apk download url? I will have a try and tell you whether there a way to make it work in android pie if possible
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes