1
我在Android中遇到错误。尝试使用找不到符号类android.net.ConnectivityManager.NetworkCallback
registerNetworkCallback(NetworkRequest request, ConnectivityManager.NetworkCallback networkCallback)
的API是寄存器接收关于满足给定NetworkRequest所有网络通知。 https://developer.android.com/reference/android/net/ConnectivityManager.html
的错误消息是
Error:(29, 39) error: cannot find symbol class NetworkCallback
我的理解是NetworkCallback在android.net.ConnectivityManager嵌套静态类。 proguard.pro不保留这个类。所以编译器找不到它。
的代码是
import android.net.ConnectivityManager.NetworkCallback;
ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest.Builder builder = null;
if (android.os.Build.VERSION.SDK_INT >= 21) {
builder = new NetworkRequest.Builder();
builder.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
builder.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED);
builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() {
};
NetworkRequest networkRequest = builder.build();
connMgr.requestNetwork(networkRequest, networkCallback);
connMgr.registerNetworkCallback(networkRequest, networkCallback);
}
proguard.pro是
-keep class android.net.** { *; }
gradle这个版本是
compileSdkVersion 25
buildToolsVersion '25.0.3'
minSdkVersion 15
targetSdkVersion 25
怎么能修正这个错误?
谢谢。我会看看它。 –