Integrieren Sie Millennial Media SDK 5.0 in die Android-Anwendung
Bezüglich der Formatierung der Frage habe ich versucht, sie zu formatieren, aber es werden nicht wenige Codezeilen angezeigt. Ich weiß nicht warum. Es passiert heute zum zweiten Mal. Bitte, wenn jemand es formatieren kann, wäre es großartig.
Frage -:
Android 2.3.3
Ich versuche nur, Millennial Media SDK in eine Demo-App zu integrieren. Kein schickes Zeug. Nur eine einfache App, um eine Vorstellung von der Implementierung zu bekommen.
Folgendes habe ich getan:
Heruntergeladen android_5_0_0_sdk von der Website.Erstellt ein Projekt und fügt libs die Datei MMSDK.jar hinzuKlicken Sie mit der rechten Maustaste auf das Projekt, gehen Sie zu Eigenschaften -> Java-Erstellungspfad -> Bibliotheken -> fügen Sie JARs hinzu -> wählen Sie den Pfad zu den Bibliotheken und MMSDK.jar4.Fügte den XML-Code meiner Aktivität hinzu
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:mm="http://millennialmedia.com/android/schema" // this
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
// and this
<com.millennialmedia.android.MMAdView
android:id="@+id/adView"
android:layout_width="468dp"
android:layout_height="60dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
mm:apid="123149"
mm:height="60"
mm:width="468" />
</RelativeLayout>
Dies ist meine AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.millennialdemo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.millennialdemo.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Start of MillennialMedia.com code -->
<activity
android:name="com.millennialmedia.android.MMActivity"
android:configChanges="keyboardHidden|orientation|keyboard" >
</activity>
<activity
android:name="com.millennialmedia.android.VideoPlayer"
android:configChanges="keyboardHidden|orientation|keyboard" >
</activity>
<!-- End of MillennialMedia.com code -->
Hier ist meine Hauptaktivität: -
import com.millennialmedia.android.MMAdView;
import com.millennialmedia.android.MMInterstitial;
import com.millennialmedia.android.MMAd;
import com.millennialmedia.android.MMBroadcastReceiver;
import com.millennialmedia.android.MMRequest;
import com.millennialmedia.android.MMSDK;
import com.millennialmedia.android.RequestListener.RequestListenerImpl;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MMSDK.initialize(this);
setContentView(R.layout.activity_main);
MMAdView adView = new MMAdView(this);
//Replace YOUR_APID with the APID provided to you by Millennial Media
adView.setApid("123149");
//Set your metadata in the MMRequest object
MMRequest request = new MMRequest();
//Add metadata here.
//Add the MMRequest object to your MMAdView.
adView.setMMRequest(request);
//Sets the id to preserve your ad on configuration changes.
adView.setId(MMSDK.getDefaultAdId());
adView.getAd();//change suggested by Millennial Mark
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Ich glaube, ich habe alles getan, was im Dokument steht, aber ich erhalte keine Anzeige und alles, was ich erhalte, ist das folgende Protokoll in meinem Logcat ...
05-20 20:54:58.932: E/Web Console(386): ReferenceError: Can't find variable: MMJS at undefined:1
05-20 20:54:58.932: E/Web Console(386): ReferenceError: Can't find variable: MMJS at undefined:1
05-20 20:54:58.972: W/MillennialMediaSDK(386): AdView onLayout changedfalse int left 24 int top 24 int right 456 int bottom 99
05-20 20:55:00.382: D/dalvikvm(386): GC_CONCURRENT freed 1228K, 57% free 2903K/6727K, external 2002K/2137K, paused 6ms+6ms
05-20 20:55:01.172: E/MillennialMediaSDK(386): Could not get a handshake. No peer certificate
05-20 20:55:01.172: E/MillennialMediaSDK(386): Could not get a handshake. No peer certificate
05-20 20:55:01.212: D/dalvikvm(386): GC_CONCURRENT freed 826K, 58% free 2843K/6727K, external 2002K/2137K, paused 6ms+5ms
Ich verstehe nicht, was falsch läuft. Wenn mir jemand helfen kann, wird es sehr geschätzt.
Nachdem dies geändert wurde
MMAdView adView = new MMAdView(this);
zu
MMAdView adView = (MMAdView) findViewById(R.id.adView);
Ich habe immer noch das gleiche problem .. hier ist der logcat ..
05-20 21:57:26.911: I/MillennialMediaSDK(467): Initializing MMLayout.
05-20 21:57:27.631: W/MillennialMediaSDK(467): MMLayout adding view (MMWebView originally from(1) MRaidState(loading).) to AdType[(b) InternalId(1) LinkedId(0) isFinishing(false)]
05-20 21:57:27.842: W/MillennialMediaSDK(467): AdView onLayout changedtrue int left 24 int top 24 int right 456 int bottom 114
05-20 21:57:27.861: W/MillennialMediaSDK(467): Id check for parent: 1 versus 1
05-20 21:57:27.911: W/MillennialMediaSDK(467): AdView onLayout changedfalse int left 24 int top 24 int right 456 int bottom 114
05-20 21:57:28.041: E/Web Console(467): ReferenceError: Can't find variable: MMJS at undefined:1
05-20 21:57:28.051: E/Web Console(467): ReferenceError: Can't find variable: MMJS at undefined:1
05-20 21:57:28.551: W/MillennialMediaSDK(467): AdView onLayout changedfalse int left 24 int top 24 int right 456 int bottom 114
05-20 21:57:29.541: D/dalvikvm(467): GC_CONCURRENT freed 1226K, 57% free 2905K/6727K, external 2002K/2137K, paused 5ms+9ms
05-20 21:57:30.292: E/MillennialMediaSDK(467): Could not get a handshake. No peer certificate
05-20 21:57:30.301: E/MillennialMediaSDK(467): Could not get a handshake. No peer certificate
05-20 21:57:30.331: D/dalvikvm(467): GC_CONCURRENT freed 813K, 58% free 2843K/6727K, external 2002K/2137K, paused 4ms+4ms
Nachdem ich den von Millennial Mark vorgeschlagenen Code geändert habe, erhalte ich die folgenden Fehler, im Grunde die gleichen.
05-21 08:54:38.948: I/MillennialMediaSDK(341): Initializing MMLayout.
05-21 08:54:39.616: W/MillennialMediaSDK(341): MMLayout adding view (MMWebView originally from(1) MRaidState(loading).) to AdType[(b) InternalId(1) LinkedId(0) isFinishing(false)]
05-21 08:54:40.027: W/MillennialMediaSDK(341): AdView onLayout changedtrue int left 24 int top 24 int right 456 int bottom 99
05-21 08:54:40.055: W/MillennialMediaSDK(341): Id check for parent: 1 versus 1
05-21 08:54:40.115: W/MillennialMediaSDK(341): AdView onLayout changedfalse int left 24 int top 24 int right 456 int bottom 99
05-21 08:54:40.295: E/Web Console(341): ReferenceError: Can't find variable: MMJS at undefined:1
05-21 08:54:40.295: E/Web Console(341): ReferenceError: Can't find variable: MMJS at undefined:1
05-21 08:54:40.295: W/MillennialMediaSDK(341): AdView onLayout changedfalse int left 24 int top 24 int right 456 int bottom 99
05-21 08:54:58.139: E/MillennialMediaSDK(341): Ad request HTTP error. androidsdk.ads.mp.mydas.mobi
05-21 08:54:59.527: E/MillennialMediaSDK(341): Could not get a handshake. ads.mp.mydas.mobi
05-21 08:54:59.527: E/MillennialMediaSDK(341): Could not get a handshake. ads.mp.mydas.mobi
Ich habe die Antworten von Millennial Mark in anderen Szenarien durchgesehen. Folgendes habe ich getan.
Klicken Sie mit der rechten Maustaste auf project-> properties-> java build path-> gehen Sie zur Registerkarte order and export und aktivieren Sie das Kontrollkästchen der MMSDK-JAR-Datei. Jetzt wird der "Handshake" -Fehler nicht angezeigt, aber der "Referenz" -Fehler wird weiterhin angezeigt und NO AD wird ebenfalls angezeigt.
Hier ist der Logcat-Trace
05-21 09:03:33.565: E/Web Console(341): ReferenceError: Can't find variable: MMJS at undefined:1
05-21 09:03:46.296: W/MillennialMediaSDK(341): Id check for parent: 1 versus 1
05-21 09:03:46.346: E/Web Console(341): ReferenceError: Can't find variable: MMJS at undefined:1
Geänderte MainActivity
package com.example.millennialdemo;
import android.os.Bundle;
import android.app.Activity;
import android.util.DisplayMetrics;
import android.util.TypedValue;
import android.view.Menu;
import android.widget.RelativeLayout;
import com.millennialmedia.android.MMAdView;
import com.millennialmedia.android.MMInterstitial;
import com.millennialmedia.android.MMAd;
import com.millennialmedia.android.MMBroadcastReceiver;
import com.millennialmedia.android.MMRequest;
import com.millennialmedia.android.MMSDK;
import com.millennialmedia.android.RequestListener.RequestListenerImpl;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MMSDK.initialize(this);
setContentView(R.layout.activity_main);
MMAdView adView = (MMAdView) findViewById(R.id.adView);
//Replace YOUR_APID with the APID provided to you by Millennial Media
adView.setApid("123149");
//Set your metadata in the MMRequest object
MMRequest request = new MMRequest();
//Add metadata here.
//Add the MMRequest object to your MMAdView.
adView.setMMRequest(request);
//Sets the id to preserve your ad on configuration changes.
adView.setId(MMSDK.getDefaultAdId());
adView.getAd();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}