2010-12-11 10 views
1

Ich bin ziemlich neu in Java und Android Apps, also, während dies Kuchen für andere sein kann, gibt es mir Kopfschmerzen.

Die App sollte laden, eine Sounddatei abspielen und schließen. Und es funktioniert ohne AdMob.

Mit der AdMob startet es, vibriert einmal (es tut nicht in der normalen Version), läuft normal, und dann bleibt stecken, vibriert 3 mal und schließt das Werfen eines "Sorry! Die Anwendung NAME (Prozess PROCESS.NAME) wurde gestoppt unerwartet. Bitte versuchen Sie es erneut ".Probleme mit AdMob Integration in Android App

Ich bin auf meiner zweiten App und meine erste AdMob-Integration.

Die SDK Anweisungen Ich folgte: http://www.admob.com/docs/AdMob_Android_SDK_Instructions.pdf

Was ich tat:
- Registrierte
- Haben Sie das SDK
- die .jar
hinzugefügt - Added der Pub ID, AdMobActivity Definition und Track Market Installiert Code aus dem SDK Anweisungen am Ende von AndroidManifest.xml und bearbeitet die Pub-ID
- Hinzugefügt die Internet-Erlaubnis
- Added "ADMOB_ALLOW_LOCATION_FOR_ADS" auch
- "AdMob AdView Attribute" zu attrs.xml hinzugefügt (Ich benutze Eclipse, also habe ich zuerst versucht, dies zu res/values ​​/ strings.xml, dann gemacht eine neue xML und hinzugefügt, um den Code, um es)



Wenn vollständige Code benötigt wird, werde ich diesen Beitrag zu bearbeiten. Jede Hilfe wird geschätzt.
Vielen Dank im Voraus
Chris


(LogCat wirft zwei kleine Fehler, ohne dass die AdMob-Dateien (I // - ed den Import und AdView))
(LogCat MIT AdMob führt dies)

12-11 14:50:00.266: ERROR/beep(284): started0 
12-11 14:50:00.346: ERROR/AndroidRuntime(284): Uncaught handler: thread main exiting due to uncaught exception 
12-11 14:50:00.368: ERROR/AndroidRuntime(284): java.lang.RuntimeException: Unable to start activity ComponentInfo{seven.kitty.purr/seven.kitty.purr.KittyPurr}: java.lang.NullPointerException 
12-11 14:50:00.368: ERROR/AndroidRuntime(284):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496) 
12-11 14:50:00.368: ERROR/AndroidRuntime(284):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
12-11 14:50:00.368: ERROR/AndroidRuntime(284):  at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
12-11 14:50:00.368: ERROR/AndroidRuntime(284):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
12-11 14:50:00.368: ERROR/AndroidRuntime(284):  at android.os.Handler.dispatchMessage(Handler.java:99) 
12-11 14:50:00.368: ERROR/AndroidRuntime(284):  at android.os.Looper.loop(Looper.java:123) 
12-11 14:50:00.368: ERROR/AndroidRuntime(284):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
12-11 14:50:00.368: ERROR/AndroidRuntime(284):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-11 14:50:00.368: ERROR/AndroidRuntime(284):  at java.lang.reflect.Method.invoke(Method.java:521) 
12-11 14:50:00.368: ERROR/AndroidRuntime(284):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
12-11 14:50:00.368: ERROR/AndroidRuntime(284):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
12-11 14:50:00.368: ERROR/AndroidRuntime(284):  at dalvik.system.NativeStart.main(Native Method) 
12-11 14:50:00.368: ERROR/AndroidRuntime(284): Caused by: java.lang.NullPointerException 
12-11 14:50:00.368: ERROR/AndroidRuntime(284):  at seven.kitty.purr.KittyPurr.onCreate(KittyPurr.java:20) 
12-11 14:50:00.368: ERROR/AndroidRuntime(284):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
12-11 14:50:00.368: ERROR/AndroidRuntime(284):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 
12-11 14:50:00.368: ERROR/AndroidRuntime(284):  ... 11 more 
12-11 14:50:00.407: ERROR/dalvikvm(284): Unable to open stack trace file '/data/anr/traces.txt': Permission denied 



Bearbeiten mit vollständigen .java und XML-Codes. Ich sauge auf Java, es ist so diferent als AS, PHP, JavaScript und andere Web-Sprachen, die ich in der Regel

KittyPurr.java

package seven.kitty.purr; 

import android.app.Activity; 
import android.media.MediaPlayer; 
import android.media.MediaPlayer.OnCompletionListener; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.TextView; 
import com.admob.android.ads.AdManager; 
import com.admob.android.ads.AdView; 

public class KittyPurr extends Activity 
{ 
    private MediaPlayer mMediaPlayer; 
    public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    playAudio(); 



    } 

    private void playAudio() { 
    try { 
    mMediaPlayer = MediaPlayer.create(this, R.raw.purrr); 
    mMediaPlayer.setLooping(false); 
    Log.e("beep","started0"); 
    mMediaPlayer.start(); 

    AdView adView = (AdView)findViewById(R.id.ad); 
    adView.requestFreshAd(); 

    mMediaPlayer.setOnCompletionListener(new OnCompletionListener() { 
      public void onCompletion(MediaPlayer arg0) { 
     finish(); 
     } 
    }); 
    } catch (Exception e) { 
    Log.e("beep", "error: " + e.getMessage(), e); 
    } 
    } 

    @Override 
    protected void onDestroy() { 
    super.onDestroy(); 
    if (mMediaPlayer != null) { 
    mMediaPlayer.release(); 
    mMediaPlayer = null; 
    } 
    } 
} 



verwenden main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:myapp="http://schemas.android.com/apk/res/seven.kitty.purr" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<com.admob.android.ads.AdView 
android:id="@+id/ad" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
/> 
</LinearLayout> 



attrs.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<declare-styleable name="com.admob.android.ads.AdView"> 
<attr name="backgroundColor" format="color" /> 
<attr name="primaryTextColor" format="color" /> 
<attr name="secondaryTextColor" format="color" /> 
<attr name="keywords" format="string" /> 
<attr name="refreshInterval" format="integer" /> 
</declare-styleable> 
</resources> 
+0

Plz die Ausgabe von logcat posten. – Macarse

Antwort

0

Added das Glas

bedeutet, dass Sie die Datei in/libs hinzufügen? Wenn nicht, tue es.

EDIT:

Sie sind die falsche onCreate verwenden. Es sollte sein:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
... 
} 
+0

yeah, ich habe das zu/libs hinzugefügt und das .jar dem Projekt hinzugefügt. genau wie es in der .pdf – chris

+0

heißt Ich habe gerade meine Antwort bearbeitet. Ihr oncreate sieht falsch aus. – Macarse

0
you need to add the following this in xml and if you want to test it in emulator 
    then u need to set the **adrequest.setTestDevice(true)** 

    <?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     **xmlns:myapp="http://schemas.android.com/apk/libs/com.google.ads"** 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     > 
    <com.google.ads.AdView 
    android:id="@+id/ad" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    **myapp:adUnitId="Your Admob ID" 
    myapp:adSize="BANNER"** 
    /> 
    </LinearLayout> 


in the AndroidManifest.xml you need to add the following thing 

<activity android:name="com.google.ads.AdActivity"  android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/> 

and one thing you need to consider that u need to compile project with android 3.2 or above