Millennial Media интеграция Android - noSuchMethod: getRealMetrics
Просто пытаюсь интегрировать MillennialMedia
рекламная сеть для монетизации моего приложения. Я сделал все так, как должно быть. Но это дает мне эту ошибку в logcat (я погуглил как 1ч и больше никого не нашел с этой проблемой...):
05-25 23:00:14.437: E/MMSDK-MMSDK(29250): Error calling getRealMetrics: java.lang.NoSuchMethodException: getRealMetrics []
05-25 23:00:14.437: E/MMSDK-MMSDK(29250): at java.lang.Class.getConstructorOrMethod(Class.java)
05-25 23:00:14.437: E/MMSDK-MMSDK(29250): at java.lang.Class.getMethod(Class.java)
05-25 23:00:14.437: E/MMSDK-MMSDK(29250): at com.millennialmedia.android.MMSDK.getMetrics(MMSDK.java:1075)
05-25 23:00:14.437: E/MMSDK-MMSDK(29250): at com.millennialmedia.android.MMSDK.getDensity(MMSDK.java:742)
05-25 23:00:14.437: E/MMSDK-MMSDK(29250): at com.millennialmedia.android.MMSDK.getDensityString(MMSDK.java:736)
05-25 23:00:14.437: E/MMSDK-MMSDK(29250): at com.millennialmedia.android.MMSDK.insertUrlCommonValues(MMSDK.java:877)
05-25 23:00:14.437: E/MMSDK-MMSDK(29250): at com.millennialmedia.android.HandShake$1.run(HandShake.java:333)
05-25 23:00:14.437: E/MMSDK-MMSDK(29250): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java)
05-25 23:00:14.437: E/MMSDK-MMSDK(29250): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java)
05-25 23:00:14.437: E/MMSDK-MMSDK(29250): at java.lang.Thread.run(Thread.java)
05-25 23:00:14.442: E/MMSDK-MMSDK(29250): Error calling getRealMetrics: java.lang.NoSuchMethodException: getRealMetrics []
05-25 23:00:14.442: E/MMSDK-MMSDK(29250): at java.lang.Class.getConstructorOrMethod(Class.java)
05-25 23:00:14.442: E/MMSDK-MMSDK(29250): at java.lang.Class.getMethod(Class.java)
05-25 23:00:14.442: E/MMSDK-MMSDK(29250): at com.millennialmedia.android.MMSDK.getMetrics(MMSDK.java:1075)
05-25 23:00:14.442: E/MMSDK-MMSDK(29250): at com.millennialmedia.android.MMSDK.getDpiHeight(MMSDK.java:1094)
05-25 23:00:14.442: E/MMSDK-MMSDK(29250): at com.millennialmedia.android.MMSDK.insertUrlCommonValues(MMSDK.java:878)
05-25 23:00:14.442: E/MMSDK-MMSDK(29250): at com.millennialmedia.android.HandShake$1.run(HandShake.java:333)
05-25 23:00:14.442: E/MMSDK-MMSDK(29250): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java)
05-25 23:00:14.442: E/MMSDK-MMSDK(29250): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java)
05-25 23:00:14.442: E/MMSDK-MMSDK(29250): at java.lang.Thread.run(Thread.java)
05-25 23:00:14.447: E/MMSDK-MMSDK(29250): Error calling getRealMetrics: java.lang.NoSuchMethodException: getRealMetrics []
05-25 23:00:14.447: E/MMSDK-MMSDK(29250): at java.lang.Class.getConstructorOrMethod(Class.java)
05-25 23:00:14.447: E/MMSDK-MMSDK(29250): at java.lang.Class.getMethod(Class.java)
05-25 23:00:14.447: E/MMSDK-MMSDK(29250): at com.millennialmedia.android.MMSDK.getMetrics(MMSDK.java:1075)
05-25 23:00:14.447: E/MMSDK-MMSDK(29250): at com.millennialmedia.android.MMSDK.getDpiWidth(MMSDK.java:1065)
05-25 23:00:14.447: E/MMSDK-MMSDK(29250): at com.millennialmedia.android.MMSDK.insertUrlCommonValues(MMSDK.java:879)
05-25 23:00:14.447: E/MMSDK-MMSDK(29250): at com.millennialmedia.android.HandShake$1.run(HandShake.java:333)
05-25 23:00:14.447: E/MMSDK-MMSDK(29250): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java)
05-25 23:00:14.447: E/MMSDK-MMSDK(29250): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java)
05-25 23:00:14.447: E/MMSDK-MMSDK(29250): at java.lang.Thread.run(Thread.java)
05-25 23:00:14.447: E/MMSDK-HandShake(29250): Could not get a handshake. : java.lang.IllegalStateException: A required meta-data tag in your app's AndroidManifest.xml does not exist. You must have the following declaration within the <application> element: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
05-25 23:00:14.447: E/MMSDK-HandShake(29250): at com.google.android.gms.common.GooglePlayServicesUtil.t(Unknown Source)
05-25 23:00:14.447: E/MMSDK-HandShake(29250): at com.google.android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable(Unknown Source)
05-25 23:00:14.447: E/MMSDK-HandShake(29250): at com.millennialmedia.android.MMSDK.insertUrlCommonValues(MMSDK.java:893)
05-25 23:00:14.447: E/MMSDK-HandShake(29250): at com.millennialmedia.android.HandShake$1.run(HandShake.java:333)
05-25 23:00:14.447: E/MMSDK-HandShake(29250): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java)
05-25 23:00:14.447: E/MMSDK-HandShake(29250): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java)
05-25 23:00:14.447: E/MMSDK-HandShake(29250): at java.lang.Thread.run(Thread.java)
Это был мой logcat, и вот мой код, который я использовал:
MMSDK.initialize(this);
MMRequest request = new MMRequest();
interstitial = new MMInterstitial(this);
interstitial.setMMRequest(request);
interstitial.setApid("163665");
interstitial.setListener(new RequestListenerImpl() {
@Override
public void requestCompleted(MMAd mmAd) {
interstitial.display();
}
});
interstitial.fetch();
Так вот мой код, и я совершенно не знаю, что является ложным. Может ли кто-нибудь объяснить мне мои недостатки? Это было бы очень мило с вашей стороны. Благодарю.
3 ответа
В версии 5.2 Android SDK от Millennial он достигает методов, добавленных в более поздние версии Android SDK, посредством самоанализа и регистрирует исключения в logcat для прозрачности и отладки.
Вы также можете увидеть похожие исключения в вашем logcat для setMediaPlaybackRequiresUserGesture или setLayerType в зависимости от версии Android SDK, скомпилированной с, и фактической версии Android телефона.
В любом случае, все эти исключения обрабатываются: они не будут вызывать сбои приложений и не нарушать работу служб отчетов о сбоях. И, несмотря на громкость и шум, они не влияют на пользовательский опыт.
Было несколько с лишним писем, в которых указывалось на это, мы понимаем подсказку и вносим некоторые изменения в 5.3.
Если кому-то нужна дополнительная информация, свяжитесь с Millennial здесь: https://tools.mmedia.com/user/supportDevPortal
Для тех, кто имеет эти ошибки:
Я отправил письмо в службу поддержки клиентов, и они сообщили, что ошибки появляются в более новых версиях Android (я думаю, что это 4.4+), но они не влияют на загрузку или показ объявлений.
Извините, ребята, у меня вдруг не было этого:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity android:name="com.millennialmedia.android.MMActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|keyboard" ></activity>
в моем манифесте, так что это не сработало... Я не знаю почему, но теперь мое приложение отображает рекламу! Ошибка все еще там, как сказал Энди, но если все необходимые вещи сработают... Спасибо всем, особенно Оник, который напомнил мне, глядя в мой манифест!