Autore Topic: Problema inserimento Ad Smaato  (Letto 1029 volte)

Offline MirApp

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Play Store ID:
    MirApp
Problema inserimento Ad Smaato
« il: 16 Aprile 2012, 14:01:22 CEST »
0
Salve a tutti!
Ho un problema che mi tedia: dovrei aggiungere un banner Smaato alla mia prima applicazione, solo che ogni volta che ci provo incappo in una grandissima difficoltà.
Spiego quello che faccio:
- tasto destro sul progetto -> Build Path -> Configure B. P. -> Java B. P. -> Add External JAR e seleziono il JAR scaricato da Smaato.
- aggiungo il seguente codice nell'activity del progetto, prima di @Override:
Codice (Java): [Seleziona]
SOMABanner mBanner = (SOMABanner)findViewById(R.id.BannerView);- aggiungo il seguente codice sempre nello stesso file, ma dopo setContentView(R.layout.main);:
Codice (Java): [Seleziona]
mBanner.setPublisherId(_ilmioid_);
mBanner.setAdSpaceId(_ilmioid_);
E fin qui non ci sono problemi, il codice funziona, va tutto bene.
Quando poi aggiungo nel main.xml il seguente codice, ecco che arriva l'errore:
CODICE:
Codice (XML): [Seleziona]
<com.smaato.SOMA.SOMABanner
android:id="@+id/BannerView"
android:layout_width="fill_parent"
android:layout_height="50dip"
/>
ERRORE:
Citazione
com.smaato.SOMA.SOMABanner failed to instantiate.

java.lang.NullPointerException
   at com.smaato.SOMA.SOMABanner.initBanner(SOMABanner.java:1181)
   at com.smaato.SOMA.SOMABanner.<init>(SOMABanner.java:213)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
   at java.lang.reflect.Constructor.newInstance(Unknown Source)
   at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.instantiateClass(ProjectCallback.java:402)
   at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.loadView(ProjectCallback.java:166)
   at com.android.layoutlib.bridge.android.BridgeInflater.loadCustomView(BridgeInflater.java:205)
   at com.android.layoutlib.bridge.android.BridgeInflater.createViewFromTag(BridgeInflater.java:133)
   at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:296)
   at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:279)
   at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:318)
   at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:325)
   at com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderService.createRenderSession(RenderService.java:372)
   at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1361)
   at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1115)
   at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.activated(GraphicalEditorPart.java:941)
   at com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditorDelegate.delegatePageChange(LayoutEditorDelegate.java:450)
   at com.android.ide.eclipse.adt.internal.editors.common.CommonXmlEditor.pageChange(CommonXmlEditor.java:358)
   at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:290)
   at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240)
   at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
   at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
   at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
   at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
   at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774)
   at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2746)
   at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1433)
   at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:257)
   at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
   at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
   at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165)
   at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
   at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
   at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
   at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
   at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
   at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
   at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
   at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
   at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
   at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
   at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
   at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
   at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

Sapete aiutarmi? Perché questo "failed to instantiate"? Come risolvo?

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Problema inserimento Ad Smaato
« Risposta #1 il: 16 Aprile 2012, 14:18:55 CEST »
0
Io con questo codice:

Codice (Java): [Seleziona]
SOMABanner smaato320x50Banner = (SOMABanner)findViewById(R.id.smaato320x50Banner);
smaato320x50Banner.setPublisherId(PUBLISHER_ID);
smaato320x50Banner.setAdSpaceId(AD_SPACE_ID);
smaato320x50Banner.setLocationUpdateEnabled(true);
smaato320x50Banner.setMediaType(MediaType.ALL);
smaato320x50Banner.addAdListener(new SmaatoSampleAdListener(this));
smaato320x50Banner.asyncLoadNewBanner();

e questo xml:

Codice (XML): [Seleziona]
<com.smaato.SOMA.SOMABanner
           android:id="@+id/smaato320x50Banner"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content" />

mi funziona tutto.

Il publisher ID e l' ad space ID non sono uguali.
Poi dovresti anche mettere:

Codice (Java): [Seleziona]
@Override
protected void onResume() {
        super.onResume();
        smaato320x50Banner.setAutoRefresh(true);
}

@Override
protected void onPause() {
        super.onPause();
        smaato320x50Banner.setAutoRefresh(false);
}

Poi ti consiglio di non fare: "Add External JAR", copiatelo nella cartella libs del tuo progetto, fai Add JAR e lo selezioni, altrimenti dalla versione 18 i JAR nella cartella libs vengono linkati automaticamente.

Fammi sapere, saluti.

I numeri contano molto di più del seme.

Offline MirApp

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Play Store ID:
    MirApp
Re:Problema inserimento Ad Smaato
« Risposta #2 il: 16 Aprile 2012, 14:37:10 CEST »
0
Ho fatto come hai detto, ovviamente gli id li mettevo giusti anche prima  :-)
Niente, non funziona, sempre lo stesso errore...
Potresti farmi un esempio di file "tuoprogetto".java e di main.xml funzionante, per favore? Magari metto qualcosa dove non devo...

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Problema inserimento Ad Smaato
« Risposta #3 il: 16 Aprile 2012, 14:50:08 CEST »
+1
Ecco:

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent" >

    <LinearLayout
       android:id="@+id/smaazoLayout"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:gravity="center_horizontal"
       android:orientation="vertical" >

        <TextView
           android:id="@+id/smaato320x50BannerTitle"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="Smaato banner (320x50)" />

        <com.smaato.SOMA.SOMABanner
           android:id="@+id/smaato320x50Banner"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content" />

        <Button
           android:id="@+id/refreshSmaato320x50BannerButton"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="Refresh Smaato banner 320x50" />
       
    </LinearLayout>

</ScrollView>

e:

Codice (Java): [Seleziona]
package ch.eagledeveloper.mobileadvertising.smaato;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import ch.eagledeveloper.mobileadvertising.R;

import com.smaato.SOMA.AdDownloader.MediaType;
import com.smaato.SOMA.SOMABanner;

public class SmaatoActivity extends Activity {
       
        private SOMABanner smaato320x50Banner;
        private final int AD_SPACE_ID = XXXXXXXX;
        private final int PUBLISHER_ID = XXXXXXXXX;
       
        @Override
    protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
        setContentView(R.layout.smaato_layout);
       
        smaato320x50Banner = (SOMABanner)findViewById(R.id.smaato320x50Banner);
        smaato320x50Banner.setPublisherId(PUBLISHER_ID);
        smaato320x50Banner.setAdSpaceId(AD_SPACE_ID);
        smaato320x50Banner.setLocationUpdateEnabled(true);
        smaato320x50Banner.setMediaType(MediaType.ALL);
        smaato320x50Banner.asyncLoadNewBanner();
       
        Button refreshSmaato320x50BannerButton = (Button)findViewById(R.id.refreshSmaato320x50BannerButton);
        refreshSmaato320x50BannerButton.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                        smaato320x50Banner.asyncLoadNewBanner();
                }
        });
        }
       
        @Override
        protected void onResume() {
                super.onResume();
                smaato320x50Banner.setAutoRefresh(true);
        }
       
        @Override
        protected void onPause() {
                super.onPause();
                smaato320x50Banner.setAutoRefresh(false);
        }

}

Saluti.
I numeri contano molto di più del seme.

Offline MirApp

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Play Store ID:
    MirApp
Re:Problema inserimento Ad Smaato
« Risposta #4 il: 16 Aprile 2012, 17:30:24 CEST »
0
Scusa se rompo ancora, ma nel progetto quello è l'unico file .java?

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Problema inserimento Ad Smaato
« Risposta #5 il: 16 Aprile 2012, 18:53:23 CEST »
0
Beh volendo si', io primo ho un'activity di scelta, premendo un bottone la lancia, quindi potrebbe anche vivere da sola.
I numeri contano molto di più del seme.

Offline MirApp

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Play Store ID:
    MirApp
Re:Problema inserimento Ad Smaato
« Risposta #6 il: 16 Aprile 2012, 20:36:51 CEST »
0
Ok, allora scusa se rompo ancora ma ammetto di essere un nabbo e di star imparando pian piano sia Java che l'ambiente Eclipse per Android: io ho un solo file .java, una sola activity di nome "Prova" con package "com.MirApp.prova".
Come faccio ad aggiungere questo benedetto banner?  :'(
Immagina che il mio file sia questo:
Codice (Java): [Seleziona]
package com.mirapp.prova;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import ch.eagledeveloper.mobileadvertising.R;

import com.smaato.SOMA.AdDownloader.MediaType;
import com.smaato.SOMA.SOMABanner;

public class Prova extends Activity {
       
     
        @Override
    public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
     
}
}

Dove ficco i codici? :)

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Problema inserimento Ad Smaato
« Risposta #7 il: 17 Aprile 2012, 08:10:45 CEST »
0
Se mi dai il tuo codice (o progetto) posso darci un occhio.
Ma l'esempio fornito insieme all'SDK di Smaato ti funziona? L'hai provato?

Fammi sapere.
I numeri contano molto di più del seme.

Offline MirApp

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Play Store ID:
    MirApp
Re:Problema inserimento Ad Smaato
« Risposta #8 il: 17 Aprile 2012, 17:25:01 CEST »
0
Te lo passo in privato :)