2016-07-01 4 views
1

私はアプリをコンパイルし、ユーザに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; 
     } 
+0

あなたのtargetSdkとminSdkについて教えてください。 – babadaba

+0

minSdkVersion = 16、targetSdkVersion = 24 – Michal

+0

あなたの質問にあなたのbuild.gradleを追加できますか? – babadaba

答えて

0

あなたが得ているのは、またはこれを使用しているライブラリを特定し、そのプロガードルールを追加するs。

あなたのアプリにFirebase Crash Reportingを統合したとお伝えしましたが、私はあなたにも同様にプロゴードルールを追加することをお勧めします。

3

NetworkStatsManagerrequires API level 23。 Android Studioでは、実際に対応する警告が表示されます。選択したminSdkVersion APIバージョンを実行するエミュレータまたはデバイスを使用してアプリをテストし、Androidスタジオに表示される警告に注意する必要があります。

関連する問題