So, I'm getting some crashes in crashlytics
regarding the Install Referral Lib.
Crash Report
main (native):tid=1 systid=21220
#00 pc 0x9ae70 libc.so (__ioctl + 8)
#01 pc 0x69383 libc.so (ioctl + 26)
#02 pc 0x3a9d3 libbinder.so (android::IPCThreadState::talkWithDriver(bool) + 238)
#03 pc 0x3b8e5 libbinder.so (android::IPCThreadState::waitForResponse(android::Parcel*, int*) + 32)
#04 pc 0x3b6c7 libbinder.so (android::IPCThreadState::transact(int, unsigned int, android::Parcel const&, android::Parcel*, unsigned int) + 122)
#05 pc 0x36227 libbinder.so (android::BpBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int) + 98)
#06 pc 0xcb3df libandroid_runtime.so (android_os_BinderProxy_transact(_JNIEnv*, _jobject*, int, _jobject*, _jobject*, int) + 82)
at android.os.BinderProxy.transactNative(Native method)
at android.os.BinderProxy.transact(BinderProxy.java:605)
at com.google.android.a.a.b(BaseProxy.java:2)
at com.google.android.finsky.externalreferrer.IGetInstallReferrerService$Stub$Proxy.c(IGetInstallReferrerService.java:3)
at com.android.installreferrer.api.InstallReferrerClientImpl.getInstallReferrer(InstallReferrerClientImpl.java:5)
at com.zingoy.app.util.analytics.InstallReferrer$1.onInstallReferrerSetupFinished(InstallReferrer.java:69)
at com.android.installreferrer.api.InstallReferrerClientImpl$InstallReferrerServiceConnection.onServiceConnected(InstallReferrerClientImpl.java:4)
at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:2084)
at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:2116)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8633)
at java.lang.reflect.Method.invoke(Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
Following is the code to implement install referral.
public static void initiateInstallReferrer(Context context, ZingoySharedPreference mPreference) {
InstallReferrerClient referrerClient = InstallReferrerClient.newBuilder(context).build();
referrerClient.startConnection(new InstallReferrerStateListener() {
@Override
public void onInstallReferrerSetupFinished(int responseCode) {
switch (responseCode) {
case InstallReferrerClient.InstallReferrerResponse.OK:
ReferrerDetails response = null;
try {
response = referrerClient.getInstallReferrer();
String referrerUrl = response.getInstallReferrer();
} catch (RemoteException e) {
e.printStackTrace();
}
break;
case InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
Log.d("Install Referrer: ", "Install Referrer not supported");
// API not available on the current Play Store app.
break;
case InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE:
// Connection couldn't be established.
Log.d("Install Referrer: ", "Install Referrer service not available");
break;
}
}
Note - This crash is only for few users, with Android 11,12,13. Mainly Oppo devices.