Не могу скомпилировать 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.
Надеюсь это поможет!