Не могу скомпилировать MediaRouteButton в проект

Я делаю в проекте Movie с CastButton, я закончил образец, и это сработало отлично. Но когда я делаю настоящий проект, у меня возникает проблема. Я импортировал компиляцию в свой файл grande, но когда я создаю MediaRouteButton, у меня появляется ошибка, я пробовал много способов, но я не могу это исправить, поэтому мне сейчас очень нужна помощь: Это: файл компиляции:

compile 'com.android.support:appcompat-v7:25.0.0'
    compile 'com.android.support:mediarouter-v7:25.0.0'
    compile 'com.googlecode.android-query:android-query:0.25.9'
    compile 'com.google.android.gms:play-services-cast-framework:10.2.0'

это logcat:

Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/app/MediaRouteButton;
                                                   at com.jlabs.pluginplayer.view.MediaPlayerView.addMediaButton(MediaPlayerView.java:533)
                                                   at com.jlabs.pluginplayer.view.MediaPlayerView.access$4200(MediaPlayerView.java:53)
                                                   at com.jlabs.pluginplayer.view.MediaPlayerView$3.run(MediaPlayerView.java:514)
                                                   at android.app.Activity.runOnUiThread(Activity.java:5524)
                                                   at com.jlabs.pluginplayer.view.MediaPlayerView.preload(MediaPlayerView.java:490)
                                                   at com.jlabs.pluginplayer.PlayerActivity.onResume(PlayerActivity.java:330)
                                                   at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1258)
                                                   at android.app.Activity.performResume(Activity.java:6327)
                                                   at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3092)
                                                   at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3134)
                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2481)
                                                   at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                                                   at android.os.Handler.dispatchMessage(Handler.java:102)
                                                   at android.os.Looper.loop(Looper.java:148)
                                                   at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                   at java.lang.reflect.Method.invoke(Native Method)
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.app.MediaRouteButton" on path: DexPathList[[zip file "/data/app/jp.tsutayamovie-1/base.apk"],nativeLibraryDirectories=[/data/app/jp.tsutayamovie-1/lib/arm, /data/app/jp.tsutayamovie-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
                                                   at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                                                   at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
                                                   at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
                                                   at com.jlabs.pluginplayer.view.MediaPlayerView.addMediaButton(MediaPlayerView.java:533) 
                                                   at com.jlabs.pluginplayer.view.MediaPlayerView.access$4200(MediaPlayerView.java:53) 
                                                   at com.jlabs.pluginplayer.view.MediaPlayerView$3.run(MediaPlayerView.java:514) 
                                                   at android.app.Activity.runOnUiThread(Activity.java:5524) 
                                                   at com.jlabs.pluginplayer.view.MediaPlayerView.preload(MediaPlayerView.java:490) 
                                                   at com.jlabs.pluginplayer.PlayerActivity.onResume(PlayerActivity.java:330) 
                                                   at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1258) 
                                                   at android.app.Activity.performResume(Activity.java:6327) 
                                                   at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3092) 
                                                   at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3134) 
                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2481) 
                                                   at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                   at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                   at android.os.Looper.loop(Looper.java:148) 
                                                   at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                   at java.lang.reflect.Method.invoke(Native Method) 
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                                                Suppressed: java.lang.ClassNotFoundException: android.support.v7.app.MediaRouteButton
                                                   at java.lang.Class.classForName(Native Method)
                                                   at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
                                                   at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
                                                   at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
                                                        ... 20 more
                                                Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

Как я могу это исправить?

1 ответ

Исходя из этого потока, вы получаете эту ошибку по следующим причинам:

В вашем файле сборки для gradle, возможно, ваше приложение нацелено и компилируется с бета-версией Android, которая все еще находится в разработке с:

compileSdkVersion 'android-L'
buildToolsVersion '20'

так же как

minSdkVersion 20
targetSdkVersion 20

Первое, что нужно отметить, это то, что это приложение не будет работать правильно (в настоящее время) ни на одном устройстве, на которое не был установлен Android-L.

Дополнительная ссылка: java.lang.NoClassDefFoundError: Ошибка разрешения: Landroid/support/v4/os/BuildCompat

Проверьте, что ваш classpath содержит этот jar (AppCompat), если ваш classpath не содержит jar, просто добавьте этот класс в ваш classpath.

Надеюсь это поможет!

Другие вопросы по тегам