2010-12-11 9 views
1

Я довольно новичок в приложениях Java и Android, поэтому, хотя это может быть торт для других, он вызывает у меня головную боль.

Приложение должно загрузить, воспроизвести звуковой файл и закрыть. И он отлично работает без AdMob.

С помощью AdMob он запускается, вибрирует один раз (он не работает в обычной версии), работает нормально, а затем застревает, вибрирует 3 раза и закрывается, бросая «Извините! Приложение NAME (процесс PROCESS.NAME) остановлено неожиданно. Повторите попытку ».Проблемы с интеграцией AdMob в Android-приложение

Я использую свое второе приложение и свою первую интеграцию с AdMob.

инструкция SDK Я следовал: http://www.admob.com/docs/AdMob_Android_SDK_Instructions.pdf

Что я сделал:
- Зарегистрированный
- Получил SDK
- Добавлено .jar
- Добавлено паба ID, определения AdMobActivity и Track Market Устанавливает код из SDK Инструкции в конце AndroidManifest.xml и отредактировал паб ID
- Добавлено разрешение на Интернет
- Добавлено «ADMOB_ALLOW_LOCATION_FOR_ADS» тоже
- Добавлено «AdMob AdView Attributes» в attrs.xml (я использую Eclipse, поэтому я сначала попытался добавить это к res/values ​​/ strings.xml, затем сделал новый XML и добавил код к нему)



Если полный код нужен, я буду редактировать этот пост. Любая помощь приветствуется.
Заранее спасибо
Chris


(LogCat бросает две небольшие ошибки без файлов AdMob (I // - ред импортом и AdView))
(LogCat С AdMob бросает это)

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 



Редактирование с использованием полного .java и XML-кодов. Я сосу на Java, это так Diferent чем AS, PHP, JavaScript и других веб-языков я обычно использую

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; 
    } 
    } 
} 



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 вывесить выход LogCat. – Macarse

ответ

0

Добавлено баночка

означает, что вы добавить файл/ЛИЭС? Если нет, сделайте это.

EDIT:

Вы используете неправильный onCreate. Оно должно быть:

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

Да, я добавил это в/libs и добавил .jar в проект. просто как это sais в .pdf – chris

+0

Я только что отредактировал свой ответ. ваш oncreate выглядит неправильно. – 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 

 Смежные вопросы

  • Нет связанных вопросов^_^