如何以编程方式删除/删除库?

时间:2018-02-05 13:51:24

标签: java android gradle-dependencies

我已将第三方的一些库集成到我的Android应用程序中。

他们使用后台服务和位置,但由于Android 8更新了后台位置限制,因此导致 java.lang.IllegalStateException 错误。

我尝试添加以下行以避免错误,但失败了:

if(Build.VERSION.SDK_INT <= 25) { // below Android 8.0
         PushAd.startPush(activity);
}else{
         PushAd.disablePush(activity); 
}  


dependencies {
  implementation 'com.adlocus:library:3.5.7@aar'
}

我可以删除或删除库,还是以编程方式停止主活动中的服务?

[解决]

我发现了解决问题的可能解决方案,我们可以使用PackageManager从第三方库启用/禁用服务/接收器/活动。

ComponentName component = new ComponentName(context, MyReceiver.class);
context.getPackageManager().setComponentEnabledSetting(component, PackageManager.COMPONENT_ENABLED_STATE_DISABLED , PackageManager.DONT_KILL_APP);

感谢Varun's answer

2 个答案:

答案 0 :(得分:1)

  

我可以以编程方式删除或删除库吗?

没有

  

我可以...以编程方式停止主活动中的服务吗?

可能。询问图书馆的开发者。

  

我尝试添加以下行以避免错误,但它失败了

没有人知道“失败”意味着什么。联系图书馆的开发人员,并询问他们如何在Android 8.0+设备上使用它。

答案 1 :(得分:0)

我发现了解决此问题的可能解决方案,我们可以使用PackageManager从第三方库启用/禁用服务/接收器/活动。

ComponentName component = new ComponentName(context, MyReceiver.class);
context.getPackageManager().setComponentEnabledSetting(component, PackageManager.COMPONENT_ENABLED_STATE_DISABLED , PackageManager.DONT_KILL_APP);

感谢Varun's answer