1. Are you ready for the Galaxy S20? Here is everything we know so far!

Build can’t find dependency injection from Foursquare library in Graddle

Discussion in 'Android Development' started by Ismael López Quintero, Apr 11, 2020.

  1. Ismael López Quintero

    Thread Starter

    Hello guys: I’m using the next scenario for Android native applications development:

    Android Studio 3.6.2
    Graddle plugin 3.6.2
    Graddle version 5.6.4
    Kotlin version 1.3.61

    When I make this dependency injection in my build.graddle

    Implementation 'com.foursquare:foursquare-android-oauth:1.1.0'

    The next class: android.net.ConnectivityManager

    can’t be found in the build process. Or at least it hasn't the expected properties.

    I have implemented the next method to detect internet connection:

    package com.example.ejoauth.networkconnection

    import android.content.Context
    import android.net.ConnectivityManager
    import android.net.NetworkCapabilities

    class NetworkConnectionStatus {

    companion object {

    // This code depends on the target SDK version
    fun isInternetAvailable(context: Context): Boolean {
    var result : Boolean = false
    val connectivityManager: android.net.ConnectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as android.net.ConnectivityManager
    val network : android.net.Network = connectivityManager.activeNetwork ?: return false // <---- Error
    val nwCap : android.net.NetworkCapabilities = connectivityManager.getNetworkCapabilities(network) ?: return false // <---- Error
    result = when {
    nwCap.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true
    nwCap.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true
    nwCap.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true
    else -> false
    }
    return result
    }
    }
    }

    During the build process, the next errors are thrown (only appears after "Foursquare" dependency injection)

    D:\clcwork\kotlin\EjOauth\app\src\main\java\com\example\ejoauth\networkconnection\NetworkConnectionStatus.kt: (15, 69): Unresolved reference: activeNetwork D:\clcwork\kotlin\EjOauth\app\src\main\java\com\example\ejoauth\networkconnection\NetworkConnectionStatus.kt: (16, 79): Unresolved reference: getNetworkCapabilities

    It seems like "Foursquare" libraries overwrite some clases or packages with another implementation in which attributes or methods are lost. The only solution I have found so far is not implementing this method “NetworkConnectionStatus.isInternetAvailable”. But this is not a solution. As you can see, I'm indicating packages explicitly in my code.

    Can you help me, please?

    Thak you in advance.
     


  2. Ismael López Quintero

    Thread Starter

    (Sorry but I do not find how to indent code in this editor)
     
Loading...

Share This Page

Loading...