Autore Topic: Errore strano  (Letto 465 volte)

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Errore strano
« il: 31 Luglio 2013, 23:46:07 CEST »
0
Ciao a tutti, ho integrato adMarvel nell'app che sto facendo ma ogni volta che entro nell'attività in cui dovrebbe esserci il banner mi esce questo errore che prima non  ho mai ricevuto:
Codice (Java): [Seleziona]
07-31 17:22:11.268: E/System(9774): Uncaught exception thrown by finalizer
07-31 17:22:11.268: E/System(9774): java.io.IOException: close failed: EIO (I/O error)
07-31 17:22:11.268: E/System(9774):     at libcore.io.IoUtils.close(IoUtils.java:41)
07-31 17:22:11.268: E/System(9774):     at java.io.FileInputStream.close(FileInputStream.java:121)
07-31 17:22:11.268: E/System(9774):     at java.io.FileInputStream.finalize(FileInputStream.java:142)
07-31 17:22:11.268: E/System(9774):     at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:185)
07-31 17:22:11.268: E/System(9774):     at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:168)
07-31 17:22:11.268: E/System(9774):     at java.lang.Thread.run(Thread.java:856)
07-31 17:22:11.268: E/System(9774): Caused by: libcore.io.ErrnoException: close failed: EIO (I/O error)
07-31 17:22:11.268: E/System(9774):     at libcore.io.Posix.close(Native Method)
07-31 17:22:11.268: E/System(9774):     at libcore.io.BlockGuardOs.close(BlockGuardOs.java:75)
07-31 17:22:11.268: E/System(9774):     at libcore.io.IoUtils.close(IoUtils.java:38)
07-31 17:22:11.268: E/System(9774):     ... 5 more

Ho seguito tutta la guida senza saltare un passo. Inoltre, le poche volte che riesco a visualizzare un banner, lo vedo sempre in formato molto piccolo, nonostante nel file xml abbia specificato la grandezza:
Codice (XML): [Seleziona]
<com.admarvel.android.ads.AdMarvelView
               android:id="@+id/rcontent_admarvel"
               android:layout_width="300dip"
               android:layout_height="250dip"
               android:layout_marginBottom="30dip"
               android:layout_centerInParent="true"
               android:visibility="gone" />

Questa è la classe in cui uso il banner:
Codice (Java): [Seleziona]
package com.qriket.qriket.scan;

import....

public class RescanContent extends BaseSNActivity implements AdMarvelViewListener
{
       
        private String transitionId;
        private String scanresultData;
        private String urlWeb;
        private String SNFBMessage;
        private String SNTWMessage;
    private String accessToken;
        private String cashPrizeId;
       
        private String membersResponse;


       
        private int magicWandCount;
        private int extraWandCount;
        private int bonustype;
    private int bonuscode;
    private int scanValue;
        private int rescanValue;
        private JSONArray bannerSequence;
        private int bannerPriority=4;


        private final int SPIN_RESCAN_RESULT=145;
        private final int SCANNERS_RESULT=198;
       
        private RelativeLayout progress;
        private RelativeLayout web_menu;
        private LinearLayout imagesBox;
       
        private LinearLayout menuweb_browser;
       
        private WebView webView;
        private TextView invalidContent;
       
        private ImageView magicBtn;
       
        private RelativeLayout bannerBox;
       
        private GSMediumRectangleAdView banner;
        private AdMarvelView adMarvelView;
       
       
        private TextView rescanNum;
        private TextView noWandsTxt;

        private ArrayList<JSONObject> rescanPeople=null;
        private JSONArray jsonArray;

       
        private ImageButton twBtn;
        private ImageButton fbBtn;
       
        private Button comeBack;
        private Button browserBtn;
        private Button browserCancelBtn;
         
        private String _siteId = "xxxxx";
        private String _partnerId = "xxxxxx";
       
       
        private AnimationDrawable animation;
       
        private boolean fbClicked;
        private boolean twitterClicked;
        private boolean magicClicked=false;
        private boolean imagesLoaded=false;
        private boolean countDownFinish=false;
       
       
        private AlphaAnimation alphaDown;
        private AlphaAnimation alphaUp;
       
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
                super.onCreate(savedInstanceState);
               
                requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

                setContentView(R.layout.rescancontent);
               
                getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title1);
       

                final TextView myTitleText = (TextView) findViewById(R.id.titleText);
            if ( myTitleText != null ) {
                myTitleText.setText("Scan");
            }
           
                Bundle extra = getIntent().getExtras();
               
                if(extra!=null)
                {
                        scanresultData=(String)extra.getString("response");
                       
                }
                 try
                {
                         ...
                       
                               
                }
                 
                catch(Exception e)
                {
                        e.printStackTrace();
                }
               
                 
                 
           
            fbClicked=false;
                twitterClicked=false;
         
               
                       
                adMarvelView = (AdMarvelView) findViewById(R.id.rcontent_admarvel);
                adMarvelView.setEnableClickRedirect(true);
                adMarvelView.setListener(this);
               
               
                banner= (GSMediumRectangleAdView)findViewById(R.id.rcontent_banner);
                banner.addListener(new MyBannerListener());
               
                if(bannerPriority==4)
                {
                                setBanner();
                                Log.d("AD ,MARVEL SETBAN","OK");
                }      
                else
                {
                        Log.d("GREYSTRIPE 3","OK");

                        banner.refresh();
                        banner.setVisibility(View.VISIBLE);
                }
               
                       
               
            menuweb_browser=(LinearLayout)findViewById(R.id.rcontent_browser);
            browserCancelBtn=(Button)findViewById(R.id.rcontent_browserCancelBtn);
                browserCancelBtn.setOnClickListener(new OnClickListener(){
                        @Override
                        public void onClick(View v) {
                                menuweb_browser.setVisibility(View.GONE);
                        }});
               
               
           
           
         
           
           
           SNFBMessage=makeShareMessage(false);
           SNTWMessage=makeShareMessage(true)+" code["+String.valueOf(RandomCode(0,9999)+"]");
         

           
           
           
         
            bannerBox=(RelativeLayout)findViewById(R.id.rcontent_backtransparent);
            bannerBox.setOnClickListener(new OnClickListener(){

                        @Override
                        public void onClick(View v) {
                                bannerBox.setVisibility(View.GONE);
                        }
               
               
            });
           
            rescanNum=(TextView)findViewById(R.id.rcontent_numRescan);
            rescanNum.setText(String.valueOf(rescanValue));
           
            twBtn=(ImageButton)findViewById(R.id.rcontent_twbtn);
            twBtn.setOnClickListener(new OnClickListener(){

                        @Override
                        public void onClick(View arg0) {
                                twClicked();
                               
                        }
               
            });
           
           
            fbBtn=(ImageButton)findViewById(R.id.rcontent_fbbtn);
            fbBtn.setOnClickListener(new OnClickListener(){

                        @Override
                        public void onClick(View arg0) {
                                fbClicked();
                        }
               
            });
           
           
            bannerBox.setOnClickListener(new OnClickListener(){

                        @Override
                        public void onClick(View v) {
                                bannerBox.setVisibility(View.GONE);
                        }
               
            });
           
         
               
            startBtnAnimation();
            getScanMembers();

       
            if(scanValue==1)
                initWebView();
            else
                showContentScanned();
         


            progress.setVisibility(View.VISIBLE);
           
        }
       
        private void StartBtnAnimation(AnimationDrawable animation)
        {
                CountDownTimer cdt = new CountDownTimer(1300,1300)
                {

                        @Override
                        public void onFinish() {

                               
                                  magicBtn.clearAnimation();

                                 if(magicWandCount<1 && extraWandCount<1)
                                    {
                                            noWandsTxt=(TextView)findViewById(R.id.rcontent_nomagicwands);
                                            noWandsTxt.setVisibility(View.VISIBLE);
                                        setTransparency();
                                        magicBtn.setEnabled(false);
                                    }
                                    else
                                    {
                                                  magicBtn.setBackgroundResource(R.drawable.usewand);
                                                  initAlphaAnimation();
                                                  setMagicClickListener();
                                    }
                                   // getScanMembers();
                                 countDownFinish=true;

                               
                        }

                        @Override
                        public void onTick(long arg0) {
                                // TODO Auto-generated method stub
                               
                        }
                       
                };

                animation.start();
               
            cdt.start();
               
               
        }
       
        private void showContentScanned()
        {
                invalidContent.setText(urlWeb);
                invalidContent.setVisibility(View.VISIBLE);
                webView.setVisibility(View.GONE);
        }
       
        private void setMagicClickListener()
        {
                 magicBtn.setOnClickListener(new OnClickListener(){

                                @Override
                                public void onClick(View arg0) {
                                       
                                        progress.setVisibility(View.VISIBLE);
                                        magicBtn.clearAnimation();
                                        magicBtn.setEnabled(false);
                                        postSN();
                                        if(magicClicked==false)
                                        {      
                                                magicClicked=true;
                                                deductMagicWand();
                                        }
                                       
                                }
                       
                    });
        }
       
        private void getCashPrizeId(String response)
        {
               
                try {
                               
                        JSONObject jo = (JSONObject)new JSONTokener(response).nextValue();
                        cashPrizeId=jo.getString("cashprizeid");
                       
                } catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
               
        }
       
        private void deductMagicWand()
        {
                refreshScript("appdeductmagicwand.php?oauth_token=",new deductResponse(),null);
        }
       
        private void displaySpinView()
        {
                Intent intent= new Intent(this,spinview.class);
                intent.putExtra("scanresultData", scanresultData);
                if(bonustype>0)
                intent.putExtra("cashprizeid", cashPrizeId);
               
                setResult(RESULT_OK);
               
                startActivity(intent);
                finish();
               
        }
       
       
       
       

       
       

       
        private void displayHList(String response)
        {
               

                if(rescanPeople!=null)
                        rescanPeople.clear();
                rescanPeople = new ArrayList<JSONObject>();
                ImgLoader imgLoader=new ImgLoader(getApplicationContext());
               
                try
                {
                        jsonArray= ((JSONObject)new JSONTokener(response).nextValue()).getJSONArray("result");
                       
                        int size=jsonArray.length();
                       
                        if(size>=10)
                        {
                                for(int i = 0; i<10; i++)
                                {
                               
                                        JSONObject jo =jsonArray.getJSONObject(i);
                               
                                        final ImageView imgView=getImage(i).get();
                                        imgView.setVisibility(View.VISIBLE);
                               
                                        String imageUrl=jo.getString("Image");
                                       
                               
                                        if(imageUrl!=null && imageUrl!="")
                                        imgLoader.DisplayImage(imageUrl, this, imgView,true);
                               
                                        imgView.setOnClickListener(new OnClickListener(){

                                        @Override
                                        public void onClick(View v) {
                                               
                                                progress.setVisibility(View.VISIBLE);
                                                goScanners(membersResponse);
                                               
                                        }
                                       
                                });
                        }
                }
                        else
                               
                        {
                                for(int i=0; i<size;i++)
                                {
                                        JSONObject jo =jsonArray.getJSONObject(i);
                                       
                                        final ImageView imgView=getImage(i).get();
                                        imgView.setVisibility(View.VISIBLE);

                               
                                        String imageUrl=jo.getString("Image");
                                       
                                        if(imageUrl!=null && imageUrl!="")
                                        imgLoader.DisplayImage(imageUrl, this, imgView,true);
                                        imgView.setOnClickListener(new OnClickListener(){

                                                @Override
                                                public void onClick(View v) {
                                                       
                                                        goScanners(membersResponse);
                                                        //openProfile((String)imgView.getTag());
                                                }
                                               
                                        });
                                       
                                       
                                }
                        }
                       
                        imagesLoaded=true;
                       
                }
               
                catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
               
        }
        private SoftReference<ImageView> getImage(int viewIndex)
        {
                RelativeLayout imgParent=(RelativeLayout)imagesBox.getChildAt(viewIndex);
                ImageView image=(ImageView)imgParent.getChildAt(0);
                SoftReference<ImageView> simg=new SoftReference<ImageView>(image);

                return simg;
        }
       
        private String makeShareMessage(boolean isFB)
        {
            try
            {
                    JSONObject o=(JSONObject)new JSONTokener(scanresultData).nextValue();
                    JSONArray ja=o.getJSONObject("sharetexts").getJSONArray("0");
                   
                    int idx=3;
                   
                    if(!isFB)
                        idx-=1;
                    if(idx<ja.length())
                    {
                        String ret=ja.getString(idx).toString();
                       
                        return ret;
                    }
                    return "";
            } catch(Exception e)
            {
                return "";
            }
        }
       
        private void goScanners(String response)
        {
                Intent intent = new Intent(this,Scanners.class);
                intent.putExtra("response", response);
                startActivityForResult(intent,SCANNERS_RESULT);
        }
       
        private void initWebView()
        {

                        ImageButton browserbtn=(ImageButton)findViewById(R.id.rcontent_browserbtn);
                        browserbtn.setOnClickListener(new OnClickListener(){ public void onClick(View v){externalBtn();}});
                       
                        ImageButton webbackbtn=(ImageButton)findViewById(R.id.rcontent_webbackbtn);
                        webbackbtn.setOnClickListener(new OnClickListener(){ public void onClick(View v){
                                if(webView.canGoBack())
                                {
                                        webView.goBack();
                                        progress.setVisibility(View.VISIBLE);
                                }
                        }});
                       
                        ImageButton webforwardbtn=(ImageButton)findViewById(R.id.rcontent_webforwardbtn);
                        webforwardbtn.setOnClickListener(new OnClickListener(){ public void onClick(View v){
                                if(webView.canGoForward())
                                {
                                        webView.goForward();
                                        progress.setVisibility(View.VISIBLE);
                                }
                        }});
                       
                        ImageButton webrefreshbtn=(ImageButton)findViewById(R.id.rcontent_webrefreshbtn);
                        webrefreshbtn.setOnClickListener(new OnClickListener(){ public void onClick(View v){
                                progress.setVisibility(View.VISIBLE);
                                webView.reload();
                        }});
                       
               
           
             
               
               
                        webView.getSettings().setJavaScriptEnabled(true);
                        webView.getSettings().setSupportZoom(true);
                        webView.getSettings().setPluginsEnabled(true);
                        //webView.getSettings().setBuiltInZoomControls(true);
                        webView.setWebViewClient(new HelloWebViewClient());
                        webView.loadUrl(urlWeb);
        }
       
       
       
       
        public class HelloWebViewClient extends WebViewClient
        {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url)
                {
                        view.loadUrl(url);
                        return true;
                }
                public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                    Log.d("ERROR", String.valueOf(errorCode) + description + failingUrl);
                        hideBusy();
                }


                public void onPageFinished(WebView view, String url) {
                        if(webView!=null && webView.getScrollY()!=0)
                                webView.pageUp(true);
                       
                        web_menu.setVisibility(View.VISIBLE);
                       
                        hideBusy();
                }
        }
       
        private void hideBusy()
        {
                progress.setVisibility(View.GONE);
               
        }
       
       
        @Override
        public void onDestroy()
        {
                super.onDestroy();
        unbindDrawables(findViewById(R.id.rcontent_root));
                webView.destroy();
                if (adMarvelView != null)
                {
                        adMarvelView.destroy();
                }
        System.gc();
            Runtime.getRuntime().gc();


        }
       
          @Override
            protected void onPause() {

                super.onPause();
                try
                        {
                                AdMarvelView.pause(this, null, adMarvelView);

                        }
                        catch (Exception e)
                        {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                        System.gc();
            }
       
       
       
        @Override
        public void onResume()
        {
                super.onResume();
                if(progress.isShown())
                progress.setVisibility(View.INVISIBLE);
                try{
                         adMarvelView = (AdMarvelView) findViewById(R.id.rcontent_admarvel);
                         AdMarvelView.resume(this, null, adMarvelView);
                }
                catch(Exception e){}
                countDownFinish=false;
        }
       
        @Override
        public void onStop()
        {
                super.onStop();

                try
                {
                        Map<SDKAdNetwork, String> publisherIds = new HashMap<SDKAdNetwork, String>();
                        AdMarvelView.uninitialize(this, publisherIds);

                }
                catch (Exception e)
                {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }

        }
       
        private void comeBack()
        {
                runOnUiThread(new Runnable() {
                        public void run() {
                                progress.setVisibility(View.VISIBLE);
                                postSN();
                                setResult(RESULT_CANCELED);
                                finish();
                }
        });
        }
       
        private void startBtnAnimation()
        {
                Handler handler = new Handler();
                handler.postDelayed(new Runnable(){

                        @Override
                        public void run() {
                                StartBtnAnimation(animation);
                               
                        }
                       
                }, 1500);
        }
       
        private void setTransparency()
        {
                if(magicBtn.getBackground()!=null)
                magicBtn.getBackground().setAlpha(120);
        }
       
         private void openBrowser()
            {

                        Intent launchBrowser = new Intent(Intent.ACTION_VIEW, Uri.parse(webView.getUrl()));
                        startActivity(launchBrowser);

            }
         
                @Override
                public void onBackPressed() {
                        if(imagesLoaded==false ||  countDownFinish==false)
                         {}
                        else
                         finish();
            }
         
       
                @Override
                public void onClickAd(AdMarvelView arg0, String arg1) {
                        // TODO Auto-generated method stub
                       
                }

                @Override
                public void onClose() {
                       
                        // TODO Auto-generated method stub
                       
                }

               

                @Override
                public void onFailedToReceiveAd(AdMarvelView arg0, int arg1,
                                ErrorReason arg2) {
                        Log.d("ERROR AD MARVEL",arg2.toString());
                        if(bannerPriority==4)
                        {
                                adMarvelView.setVisibility(View.GONE);
                                banner.setVisibility(View.VISIBLE);
                                banner.refresh();
                        }
                }

                @Override
                public void onReceiveAd(AdMarvelView arg0) {
                        // TODO Auto-generated method stub
                        adMarvelView.focus();
                       
                }

                @Override
                public void onRequestAd(AdMarvelView arg0) {
                        Log.d("REQUEST AD MARVEL","OK");
                }  

                private void setBanner()
                {
                        adMarvelView.setVisibility(View.VISIBLE);
                        Map<String, Object> targetParams = new HashMap<String, Object>();
                        targetParams.put("KEYWORDS", "xxxxx");
                        adMarvelView.requestNewAd(targetParams, _partnerId, _siteId);
                }

                @Override
                public void onExpand() {
                        // TODO Auto-generated method stub
                       
                }
               
                private class MyBannerListener implements GSAdListener {

                        @Override
                        public void onFailedToFetchAd(GSAd ad, final GSAdErrorCode error) {
                                Log.d("ERROR GREYSTRIPE",error.toString());

                                if(bannerPriority==3)
                                {
                                        banner.setVisibility(View.GONE);
                                        setBanner();
                                }
                        }

                        @Override
                        public void onAdClickthrough(GSAd ad) {

                        }

                        @Override
                        public void onAdDismissal(GSAd ad) {
                               
                        }

                        @Override
                        public void onFetchedAd(GSAd ad) {
                               
                        }

                        @Override
                        public void onAdExpansion(GSAd ad) {
                                }

                        @Override
                        public void onAdCollapse(GSAd ad) {
                        }
                }

               

       

                @Override
                public void onStart()
                {
                        super.onStart();
                        try
                        {
                                // Initialized SDKs that need to; pass in publisher ids
                                Map<SDKAdNetwork, String> publisherIds = new HashMap<SDKAdNetwork, String>();
                                AdMarvelView.initialize(this, publisherIds);

                        }
                        catch (Exception e)
                        {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                        // your code
                }

}

Molti metodi sono stati omessi ma quelli che riguardano AdMarvel ci sono. Qualche idea? Grazie