私はアプリをコンパイルし、ユーザにGoogle Play
で配布します。私はFirebase Crash
を統合しましたが、今はコンソールで多くのエラーが発生しています。例外java.lang.NoClassDefFoundError:Landroid/app/usage/NetworkStatsManager
Exception java.lang.NoClassDefFoundError: Failed resolution of: Landroid/app/usage/NetworkStatsManager;
Caused by java.lang.ClassNotFoundException: Didn't find class "android.app.usage.NetworkStatsManager" on path: DexPathList[[zip file "/data/app/com.xxx.yyy/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
私はProGuardをデフォルト設定で使用します。これを解決するために何かできることはありますか? Android Studio 2.2 Preview 4
でコンパイルしました。
ありがとうございました。
EDIT
私は私のコードを再確認し、私はこれを尋ねたことを恥じています:)なぜ?
私が行ったAPIバージョンを確認する必要がありますが、APIバージョンに関する警告を無効にする必要がありました。
API23が必要な機能を実装していたので、私は愚かな間違いをしました。
APIが最善のアプローチの場合は、これを行う方法やそれに続く方法はありますか??
android.app.usage.NetworkStatsManager
は、あなたのproguard-rules.pro
ファイルに次の行を追加します:
-keep class android.app.usage.NetworkStatsManager
は、他のNoClassDefFoundError
のため-keep class
ルールを追加し、あなたのコードのどこかでこのクラスを使用している場合
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M)
{
return true;
}
else
{
return false;
}
あなたのtargetSdkとminSdkについて教えてください。 – babadaba
minSdkVersion = 16、targetSdkVersion = 24 – Michal
あなたの質問にあなたのbuild.gradleを追加できますか? – babadaba