繁体   English   中英

异常 java.lang.NoClassDefFoundError

[英]Exception java.lang.NoClassDefFoundError

我是应用程序开发的新手。 我在 Play 商店发布的应用程序中出现此错误。 Google Play 控制台在崩溃详细信息部分跟踪了以下错误。 由于这个错误,我的应用程序在 Play 控制台上出现不良行为状态。 此错误出现在 Android SDK 25 及以下。 任何人都可以在从主屏幕和通知区域播放和暂停音频的媒体播放器中展示音频焦点请求的正确完整方法。 音频也存储在本地的原始文件夹中。

 Exception java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioFocusRequest$Builder;
  at com.onestopstudio.sankatmochanhanuman.SankatMochanHanuman.onCreate (SankatMochanHanuman.java:197)
  at android.app.Activity.performCreate (Activity.java:6977)
  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1126)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2946)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3064)
  at android.app.ActivityThread.-wrap14 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1659)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:154)
  at android.app.ActivityThread.main (ActivityThread.java:6816)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1565)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1453)
Caused by java.lang.ClassNotFoundException:
  at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:380)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:312)

下面是我用于音频焦点请求的代码。 这段代码在GeekForGeeks How to Manage Audio Focus in Android? 问题。 这是 GeekForGeeks 主题页面的链接:- https://www.geeksforgeeks.org/how-to-manage-audio-focus-in-android

 audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    playbackAttributes = new AudioAttributes.Builder()
            .setUsage(AudioAttributes.USAGE_MEDIA)
            .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
            .build();

    AudioFocusRequest focusRequest = new AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN)
            .setAudioAttributes(playbackAttributes)
            .setAcceptsDelayedFocusGain(true)
            .setOnAudioFocusChangeListener(audioFocusChangeListener)
            .build();
    audioFocusRequest = audioManager.requestAudioFocus(focusRequest);
    audioManager.abandonAudioFocus(audioFocusChangeListener);

您应该在 Android 8.0(API 级别 26)及更高版本上使用AudioFocusRequest.Builder或尝试使用兼容版本:将此添加到您的build.gradle

dependencies {
   implementation "androidx.media:media:1.6.0"
}

并使用AudioFocusRequestCompat.Builder而不是AudioFocusRequest.Builder

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM