microg / GmsCore

Free implementation of Play Services
https://microg.org
Apache License 2.0
8.06k stars 1.67k forks source link

[Bug] Crash in apps which use maps on Android 4.4 Kitkat #1105

Open aer0nix opened 4 years ago

aer0nix commented 4 years ago

Apps which use maps, crash on Android 4.4.4 (armeabi-v7a) with last microG (v0.2.11.202414). With older version map work fine.

Crash in app com.whatsapp: E/AndroidRuntime( 5930): FATAL EXCEPTION: main E/AndroidRuntime( 5930): Process: com.whatsapp, PID: 5930 E/AndroidRuntime( 5930): java.lang.NoClassDefFoundError: org.microg.gms.maps.mapbox.model.BitmapDescriptorFactoryImpl E/AndroidRuntime( 5930): at com.google.android.gms.maps.internal.CreatorImpl.initV2(CreatorImpl.java:68) E/AndroidRuntime( 5930): at com.google.android.gms.maps.internal.ICreator$Stub.onTransact(ICreator.java:134) E/AndroidRuntime( 5930): at com.google.android.gms.maps.internal.CreatorImpl.onTransact(CreatorImpl.java:75) E/AndroidRuntime( 5930): at android.os.Binder.transact(Binder.java:361) E/AndroidRuntime( 5930): at X.1Am.A02(:203637) E/AndroidRuntime( 5930): at X.1pB.AW3(:261573) E/AndroidRuntime( 5930): at X.1BU.A01(:204050) E/AndroidRuntime( 5930): at X.1BH.A00(:203907) E/AndroidRuntime( 5930): at X.0FI.A09(:74510) E/AndroidRuntime( 5930): at X.24C.A05(:278263) E/AndroidRuntime( 5930): at X.24A.A00(:278189) E/AndroidRuntime( 5930): at X.0as.onClick(:154399) E/AndroidRuntime( 5930): at android.view.View.performClick(View.java:4463) E/AndroidRuntime( 5930): at android.view.View$PerformClick.run(View.java:18789) E/AndroidRuntime( 5930): at android.os.Handler.handleCallback(Handler.java:808) E/AndroidRuntime( 5930): at android.os.Handler.dispatchMessage(Handler.java:103) E/AndroidRuntime( 5930): at android.os.Looper.loop(Looper.java:193) E/AndroidRuntime( 5930): at android.app.ActivityThread.main(ActivityThread.java:5265) E/AndroidRuntime( 5930): at java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime( 5930): at java.lang.reflect.Method.invoke(Method.java:515) E/AndroidRuntime( 5930): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825) E/AndroidRuntime( 5930): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641) E/AndroidRuntime( 5930): at dalvik.system.NativeStart.main(Native Method) W/ActivityManager( 656): Force finishing activity com.whatsapp/.Conversation

Crash in app com.tgt.transport: E/AndroidRuntime( 4685): FATAL EXCEPTION: main E/AndroidRuntime( 4685): Process: com.tgt.transport, PID: 4685 E/AndroidRuntime( 4685): java.lang.NoClassDefFoundError: org.microg.gms.maps.mapbox.model.BitmapDescriptorFactoryImpl E/AndroidRuntime( 4685): at com.google.android.gms.maps.internal.CreatorImpl.initV2(CreatorImpl.java:68) E/AndroidRuntime( 4685): at com.google.android.gms.maps.internal.ICreator$Stub.onTransact(ICreator.java:134) E/AndroidRuntime( 4685): at com.google.android.gms.maps.internal.CreatorImpl.onTransact(CreatorImpl.java:75) E/AndroidRuntime( 4685): at android.os.Binder.transact(Binder.java:361) E/AndroidRuntime( 4685): at com.google.android.gms.maps.internal.zzc$zza$zza.zzh(Unknown Source) E/AndroidRuntime( 4685): at com.google.android.gms.maps.internal.zzai.zzbq(Unknown Source) E/AndroidRuntime( 4685): at com.google.android.gms.maps.MapsInitializer.initialize(Unknown Source) E/AndroidRuntime( 4685): at com.tgt.transport.activities.MainActivity.onCreate(MainActivity.java:116) E/AndroidRuntime( 4685): at android.app.Activity.performCreate(Activity.java:5264) E/AndroidRuntime( 4685): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088) E/AndroidRuntime( 4685): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2288) E/AndroidRuntime( 4685): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2375) E/AndroidRuntime( 4685): at android.app.ActivityThread.access$800(ActivityThread.java:151) E/AndroidRuntime( 4685): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1318) E/AndroidRuntime( 4685): at android.os.Handler.dispatchMessage(Handler.java:110) E/AndroidRuntime( 4685): at android.os.Looper.loop(Looper.java:193) E/AndroidRuntime( 4685): at android.app.ActivityThread.main(ActivityThread.java:5265) E/AndroidRuntime( 4685): at java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime( 4685): at java.lang.reflect.Method.invoke(Method.java:515) E/AndroidRuntime( 4685): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825) E/AndroidRuntime( 4685): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641) E/AndroidRuntime( 4685): at dalvik.system.NativeStart.main(Native Method) W/ActivityManager( 656): Force finishing activity com.tgt.transport/.activities.MainActivity

aer0nix commented 4 years ago

Also on pastebin: com.whatsapp: https://pastebin.com/raw/utKvqh9u com.tgt.transport: https://pastebin.com/raw/bmaEqArm

mar-v-in commented 4 years ago

ab69fa1ee0721cd22570070d14b939b9206c67ed hopefully fixes this.

aer0nix commented 4 years ago

@mar-v-in , Apps starts now, but map have rendering and performance issues. Phone stuck and fall to reboot after moving on map.

com.whatsapp: https://pastebin.com/raw/LeH3GiLL com.tgt.transport: https://pastebin.com/raw/JSDnGxsa

mar-v-in commented 4 years ago

Have you tried using the vtm map implementation? The log doesn't look helpful to me, maybe your device just is not powerful enough for mapbox maps?

aer0nix commented 4 years ago

Maybe you right. I can't use vtm because KitKat have problems with TLS v1.2 handshake failure.

aer0nix commented 4 years ago

Empty map with vtm

W/dalvikvm( 4086): VFY: unable to resolve virtual method 22920: Landroid/widget/FrameLayout;.startActionModeForChild (Landroid/view/View;Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
W/GmsMapView( 4086): java.lang.NoSuchFieldException: primaryCpuAbi
W/GmsMapView( 4086):    at java.lang.Class.getField(Class.java:724)
W/GmsMapView( 4086):    at org.microg.gms.maps.vtm.BackendMapView.loadNativeLib(BackendMapView.java:66)
W/GmsMapView( 4086):    at org.microg.gms.maps.vtm.BackendMapView.<init>(BackendMapView.java:118)
W/GmsMapView( 4086):    at org.microg.gms.maps.vtm.BackendMap.<init>(BackendMap.java:71)
W/GmsMapView( 4086):    at org.microg.gms.maps.vtm.GoogleMapImpl.<init>(GoogleMapImpl.java:142)
W/GmsMapView( 4086):    at org.microg.gms.maps.vtm.GoogleMapImpl.create(GoogleMapImpl.java:155)
W/GmsMapView( 4086):    at org.microg.gms.maps.vtm.MapFragmentImpl.onCreateView(MapFragmentImpl.java:89)
W/GmsMapView( 4086):    at com.google.android.gms.maps.internal.IMapFragmentDelegate$Stub.onTransact(IMapFragmentDelegate.java:163)
W/GmsMapView( 4086):    at org.microg.gms.maps.vtm.MapFragmentImpl.onTransact(MapFragmentImpl.java:176)
W/GmsMapView( 4086):    at android.os.Binder.transact(Binder.java:361)
W/GmsMapView( 4086):    at com.google.android.gms.maps.internal.IMapFragmentDelegate$zza$zza.onCreateView(Unknown Source)
W/GmsMapView( 4086):    at com.google.android.gms.maps.SupportMapFragment$zza.onCreateView(Unknown Source)
W/GmsMapView( 4086):    at com.google.android.gms.dynamic.zza$4.zzb(Unknown Source)
W/GmsMapView( 4086):    at com.google.android.gms.dynamic.zza.zza(Unknown Source)
W/GmsMapView( 4086):    at com.google.android.gms.dynamic.zza.onCreateView(Unknown Source)
W/GmsMapView( 4086):    at com.google.android.gms.maps.SupportMapFragment.onCreateView(Unknown Source)
W/GmsMapView( 4086):    at android.support.v4.app.Fragment.performCreateView(Fragment.java:2192)
W/GmsMapView( 4086):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1255)
W/GmsMapView( 4086):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1472)
W/GmsMapView( 4086):    at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1691)
W/GmsMapView( 4086):    at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:3440)
W/GmsMapView( 4086):    at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120)
W/GmsMapView( 4086):    at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:378)
W/GmsMapView( 4086):    at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:33)
W/GmsMapView( 4086):    at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)
W/GmsMapView( 4086):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
W/GmsMapView( 4086):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
W/GmsMapView( 4086):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
W/GmsMapView( 4086):    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
W/GmsMapView( 4086):    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
W/GmsMapView( 4086):    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
W/GmsMapView( 4086):    at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:292)
W/GmsMapView( 4086):    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
W/GmsMapView( 4086):    at com.tgt.transport.activities.MapActivity.onCreate(MapActivity.java:54)
W/GmsMapView( 4086):    at android.app.Activity.performCreate(Activity.java:5264)
W/GmsMapView( 4086):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)
W/GmsMapView( 4086):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2288)
W/GmsMapView( 4086):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2375)
W/GmsMapView( 4086):    at android.app.ActivityThread.access$800(ActivityThread.java:151)
W/GmsMapView( 4086):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1318)
W/GmsMapView( 4086):    at android.os.Handler.dispatchMessage(Handler.java:110)
W/GmsMapView( 4086):    at android.os.Looper.loop(Looper.java:193)
W/GmsMapView( 4086):    at android.app.ActivityThread.main(ActivityThread.java:5265)
W/GmsMapView( 4086):    at java.lang.reflect.Method.invokeNative(Native Method)
W/GmsMapView( 4086):    at java.lang.reflect.Method.invoke(Method.java:515)
W/GmsMapView( 4086):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825)
W/GmsMapView( 4086):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641)
W/GmsMapView( 4086):    at dalvik.system.NativeStart.main(Native Method)
W/GmsMapImpl( 4086): Compass not yet supported
W/GmsMapImpl( 4086): Compass not yet supported
W/GmsMapImpl( 4086): Compass not yet supported
W/GmsMapImpl( 4086): Compass not yet supported
W/GmsMapImpl( 4086): Compass not yet supported
W/GmsMapImpl( 4086): ZoomControls not yet supported
W/GmsMapImpl( 4086): Compass not yet supported
W/GmsMapImpl( 4086): ZoomControls not yet supported
W/GmsMapImpl( 4086): Compass not yet supported
W/GmsMapImpl( 4086): ZoomControls not yet supported
W/GmsMapImpl( 4086): Compass not yet supported
W/GmsMapImpl( 4086): ZoomControls not yet supported
W/GmsMapImpl( 4086): MyLocation not yet supported
W/dalvikvm( 4086): VFY: unable to resolve virtual method 545: Landroid/content/Context;.createDeviceProtectedStorageContext ()Landroid/content/Context;
W/dalvikvm( 4086): VFY: unable to resolve virtual method 552: Landroid/content/Context;.getCodeCacheDir ()Ljava/io/File;
W/dalvikvm( 4086): VFY: unable to resolve virtual method 553: Landroid/content/Context;.getColor (I)I
W/dalvikvm( 4086): VFY: unable to resolve virtual method 554: Landroid/content/Context;.getColorStateList (I)Landroid/content/res/ColorStateList;
W/dalvikvm( 4086): VFY: unable to resolve virtual method 556: Landroid/content/Context;.getDataDir ()Ljava/io/File;
W/dalvikvm( 4086): VFY: unable to resolve virtual method 557: Landroid/content/Context;.getDrawable (I)Landroid/graphics/drawable/Drawable;
W/dalvikvm( 4086): VFY: unable to resolve virtual method 564: Landroid/content/Context;.getMainExecutor ()Ljava/util/concurrent/Executor;
W/dalvikvm( 4086): VFY: unable to resolve virtual method 566: Landroid/content/Context;.getNoBackupFilesDir ()Ljava/io/File;
W/dalvikvm( 4086): VFY: unable to resolve virtual method 576: Landroid/content/Context;.getSystemService (Ljava/lang/Class;)Ljava/lang/Object;
W/dalvikvm( 4086): VFY: unable to resolve virtual method 578: Landroid/content/Context;.getSystemServiceName (Ljava/lang/Class;)Ljava/lang/String;
W/dalvikvm( 4086): VFY: unable to resolve virtual method 581: Landroid/content/Context;.isDeviceProtectedStorage ()Z
W/dalvikvm( 4086): VFY: unable to resolve virtual method 598: Landroid/content/Context;.startForegroundService (Landroid/content/Intent;)Landroid/content/ComponentName;
W/hwcomposer(  149): [COMP] (0:3) FBT might use ION (handle=0xb8264ad0)
E/o.o.r.GLUtils( 4086): glCreateProgram: glError 1280
aer0nix commented 4 years ago

I checked vtm on Android 9 and map was empty too.