【问题标题】:"unfortunately, myapp has stopped" android simulator error“不幸的是,myapp 已停止” android 模拟器错误
【发布时间】:2012-06-14 15:09:22
【问题描述】:

当我尝试打开一个通过 Eclipse 在 android 模拟器上安装的应用程序时,我收到错误“不幸的是,myapp 已停止”。这是我的文件

java 文件:

@Override
public void onStart() {
    super.onStart();
    try {
        // Initialized SDKs that need to; pass in publisher ids
        Map<SDKAdNetwork, String> publisherIds = new HashMap<SDKAdNetwork, String>();
        publisherIds.put(SDKAdNetwork.GREYSTRIPE, "486417");
        if (medialetsInitialized == false) {
            publisherIds.put(SDKAdNetwork.MEDIALETS,
                    "PutYourIDHere");
        }
        AdMarvelView.initialize(this, publisherIds, handler);

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

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();

    try {
        // Initialized SDKs that need to; pass in publisher ids
        Map<SDKAdNetwork, String> publisherIds = new HashMap<SDKAdNetwork, String>();
        publisherIds.put(SDKAdNetwork.GREYSTRIPE, "486417");
        publisherIds.put(SDKAdNetwork.MEDIALETS,
                "PutYourIDHere");

        AdMarvelView.pause(this, publisherIds);

        AdMarvelView adMarvelView = (AdMarvelView) findViewById(R.id.ad);
        if (adMarvelView != null) {
            adMarvelView.flush();
        }

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

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();

    try {
        // Initialized SDKs that need to; pass in publisher ids
        Map<SDKAdNetwork, String> publisherIds = new HashMap<SDKAdNetwork, String>();
        publisherIds.put(SDKAdNetwork.GREYSTRIPE, "486417");
        publisherIds.put(SDKAdNetwork.MEDIALETS,
                "PutYourIDHere");

        AdMarvelView.resume(this, publisherIds);

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

@Override
public void onStop() {
    super.onStop();

    try {
        Map<SDKAdNetwork, String> publisherIds = new HashMap<SDKAdNetwork, String>();
        publisherIds.put(SDKAdNetwork.GREYSTRIPE, "486417");
        if (medialetsInitialized == true) {
            publisherIds.put(SDKAdNetwork.MEDIALETS,
                    "PutYourIDHere");
            medialetsInitialized = false;
        }
        AdMarvelView.uninitialize(this, publisherIds);

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

    // your code
}

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    handler = new AdMarvelInitializedHandler();

    final Button button = (Button) findViewById(R.id.Button01);

    final EditText editText01 = (EditText) findViewById(R.id.EditText01);

    final EditText editText02 = (EditText) findViewById(R.id.EditText02);

    final EditText editText03 = (EditText) findViewById(R.id.EditText03);

    AdMarvelView adMarvelView = (AdMarvelView) findViewById(R.id.ad);
    adMarvelView.setEnableClickRedirect(true);
    adMarvelView.setDisableAnimation(false);
    adMarvelView.setListener(this);
    adMarvelView.setEnableInAppBrowser(true);

    editText01.setText(_partnerId);
    editText02.setText(_siteId);
    editText03.setText(_interstitialSiteId);

    adMarvelInterstitialAds = new AdMarvelInterstitialAds(this, 0,
            0x726D6D, 0x00FF00, 0x000000);

    button.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

            try {
                Map<String, String> targetParams = new HashMap<String, String>();
                // targetParams.put("GEOLOCATION", "37.686668,-77.4510549");
                // targetParams.put("POSTAL_CODE", "94131");

                final EditText editText01 = (EditText) findViewById(R.id.EditText01);
                final EditText editText02 = (EditText) findViewById(R.id.EditText02);

                String partnerId = editText01.getText().toString();
                String siteId = editText02.getText().toString();

                AdMarvelView adMarvelView = (AdMarvelView) findViewById(R.id.ad);
                adMarvelView.requestNewAd(targetParams, partnerId, siteId);
            } catch (Exception e) {
                // TODO Auto-generated catch block

                Log.e("admarvel", e.getStackTrace().toString());
            }

        }

    });

    final Button button2 = (Button) findViewById(R.id.Button02);

    button2.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

            Map<String, String> targetParams = new HashMap<String, String>();

            targetParams.put("SIZE", "VIDEOPRE");

            final EditText editText01 = (EditText) findViewById(R.id.EditText01);
            final EditText editText03 = (EditText) findViewById(R.id.EditText03);

            String partnerId = editText01.getText().toString();
            String interstitialSiteId = editText03.getText().toString();

            AdMarvelInterstitialAds
                    .setListener(AdMarvelHelloWorldDemo.this);
            AdMarvelHelloWorldDemo.this.adMarvelInterstitialAds
                    .requestNewInterstitialAd(AdMarvelHelloWorldDemo.this,
                            targetParams, partnerId, interstitialSiteId);

        }

    });

}

public void onClickAd(AdMarvelView adMarvelView, String clickUrl) {
    if (clickUrl != null) {
        Log.e("admarvel", "ClickUrl: " + clickUrl);
    }

}

public void onFailedToReceiveAd(AdMarvelView adMarvelView, int errorCode,
        ErrorReason errorReason) {
    Log.e("admarvel", "onFailedToReceiveAd; errorCode: " + errorCode
            + " errorReason: " + errorReason.toString());

}

public void onFailedToReceiveInterstitialAd(SDKAdNetwork sdkAdNetwork,
        String publisherid, int errorCode, ErrorReason errorReason) {

    Log.e("admarvel", "onFailedToReceiveInterstitialAd; errorCode: "
            + errorCode + " errorReason: " + errorReason.toString());

}

public void onReceiveAd(AdMarvelView adMarvelView) {
    Log.e("admarvel", "onReceiveAd");
}

public void onRequestAd(AdMarvelView adMarvelView) {
    Log.e("admarvel", "onRequestAd");

}

public void onRequestInterstitialAd() {
    Log.e("admarvel", "onRequestInterstitialAd");
}

public void onReceiveInterstitialAd(SDKAdNetwork sdkAdNetwork,
        String publisherid, AdMarvelAd adMarvelAd) {
    Log.e("admarvel", "onReceiveInterstitialAd");

    adMarvelInterstitialAds.displayInterstitial(this, sdkAdNetwork,
            publisherid, adMarvelAd);
    if (sdkAdNetwork.equals(SDKAdNetwork.ADMARVEL)) {
        // overridePendingTransition(R.anim.fadein, R.anim.fadeout);
    }
}

public void onCloseInterstitialAd() {
    Log.e("admarvel", "onCloseInterstitialAd");
    if (this.adMarvelActivity != null) {
        this.adMarvelActivity.finish();
    } else if (this.adMarvelVideoActivity != null) {
        this.adMarvelVideoActivity.finish();
    }

}

public void onAdmarvelActivityLaunched(AdMarvelActivity a) {
    Log.e("admarvel", "onAdmarvelActivityLaunched");
    this.adMarvelActivity = a;

}

public void onAdMarvelVideoActivityLaunched(AdMarvelVideoActivity a) {
    Log.e("admarvel", "onAdmarvelVideoActivityLaunched");
    this.adMarvelVideoActivity = a;

}

public void onExpand() {
    Log.e("admarvel", "onExpand");

}

public void onClose() {
    Log.e("admarvel", "onClose");

}

private class AdMarvelInitializedHandler implements
        AdMarvelInitializeListener {

    public void onInitialized(SDKAdNetwork adnetwork) {

        if (adnetwork.equals(SDKAdNetwork.MEDIALETS)) {
            medialetsInitialized = true;
        }

    }

}

    }

这是清单文件

     <?xml version="1.0" encoding="utf-8"?>
     <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.admarvel.androidhelloworlddemo" android:versionCode="1"
android:versionName="1.5">

<application android:icon="@drawable/icon" android:label=""
    android:debuggable="true"  android:configChanges="orientation" >
    <activity android:name=".AdMarvelHelloWorldDemo"
        android:label="">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name="com.admarvel.android.ads.AdMarvelActivity"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:configChanges="keyboard|keyboardHidden|orientation"
        >
    </activity>
    <activity android:name="com.admarvel.android.ads.AdMarvelVideoActivity"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:configChanges="keyboard|keyboardHidden|orientation"
        >
    </activity>

    <provider android:name="com.admarvel.android.ads.AdMarvelLocalFileContentProvider"
      android:authorities="com.admarvel.androidhelloworlddemo.AdMarvelLocalFileContentProvider" />

    <!--
        ADMARVEL: If your integrating with Admob, please define this activity
    -->

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

    <!--
        ADMARVEL: If your integrating with Ivdopia, please define this activity
    -->

    <activity android:name="com.vdopia.client.android.VDOActivity"
        android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
        android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden" />

    <!--
        ADMARVEL: If your integrating with Greystripe, please define this
        provider
    -->
    <provider android:name="com.greystripe.android.sdk.AdContentProvider"
        android:authorities="com.admarvel.androidhelloworlddemo.AdContentProvider"
        android:multiprocess="true" android:exported="false" />

    <!--
        ADMARVEL: If your integrating with Medialets, please define this

    -->
    <service android:name="com.medialets.advertising.AdManagerService" />

    <!--
        ADMARVEL: If your integrating with Greystripe, please define this
        activity
    -->
    <activity android:name="com.greystripe.android.sdk.AdView"
        android:configChanges="keyboard|keyboardHidden|orientation">
        <intent-filter>
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>


    <!-- 
        ADMARVEL:  If your integrating with Millennial, please define this
     -->

    <activity android:name="com.millennialmedia.android.MMAdViewOverlayActivity" 
                android:theme="@android:style/Theme.Translucent.NoTitleBar">
    </activity>        
    <activity android:name="com.millennialmedia.android.VideoPlayer" 
                android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                android:configChanges="keyboardHidden|orientation|keyboard" >
    </activity>

    <!-- 
        ADMARVEL:  If your integrating with Rhythm, please define this
     -->
  <activity android:label="Rhythm Activity"
                        android:theme="@android:style/Theme.Translucent.NoTitleBar"
                        android:configChanges="keyboard|keyboardHidden|orientation"
                        android:name="com.rhythmnewmedia.sdk.RhythmActivity" />
  <activity android:label="Rhythm Video Activity"
                        android:theme="@android:style/Theme.Black.NoTitleBar"
                        android:configChanges="keyboard|keyboardHidden|orientation"
                         android:name="com.rhythmnewmedia.sdk.video.RhythmVideoActivity" />

</application>
<uses-sdk android:minSdkVersion="3" />

<supports-screens android:largeScreens="true"                  
              android:anyDensity="true" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<!-- REQUIRED BY GREYSTRIPE, MEDIALETS, RHYTHM AND MILLENNIAL  -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<!-- REQUIRED BY MEDIALETS -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

    </manifest> 

有人可以帮忙吗?

编辑:这里是 logcat 的链接

logcat file

请帮忙!谢谢。

【问题讨论】:

  • @Mike Gates 我如何获取 logcat 日志,抱歉我是新手。
  • 如果您在 Eclipse 中的 Java 视图中,请查看底部。将有一个名为Logcat 的选项卡。在您的问题中发布红色消息。如果您没有看到Logcat,请转到窗口 -> 显示视图 -> Logcat。
  • @Mike Gates @Sunny Kumar Aditya 首先我从模拟器中卸载了该应用程序。然后我在 Eclipse 中打开了 logcat 窗口,并在模拟器上再次安装了该应用程序。我在 logcat 中没有得到任何东西,但这里是控制台消息。 ` 安装 AdMarvelHelloWorldDemo1.apk... 成功!在设备 emulator-5554 ActivityManager 上启动活动 com.admarvel.androidhelloworlddemo.AdMarvelHelloWorldDemo:正在启动:Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.admarvel.androidhelloworlddemo/.AdMarvelHelloWorldDemo }` 这些是最后 3 条消息
  • 控制台消息无关紧要。但是你说 Logcat 没有显示任何东西?在您的 Logcat 视图中,向左查看“已保存的过滤器”,然后单击“所有消息”。你现在有什么收获吗? (注意:如果您没有看到“已保存的过滤器”,请单击 Logcat 视图中暂停按钮左侧的按钮以显示“已保存的过滤器”视图)。另请注意,如果您确实收到 Logcat 消息,请编辑您的问题并将其发布在那里,而不是在评论中。
  • @Mike Gates 我得到了 logcat(来自命令提示符),但它们太大了,无法在这里共享,超出了字符数限制。有没有办法在这里附加一个txt文件

标签: android android-layout android-emulator


【解决方案1】:

它似乎正在根据此消息寻找内容提供者,但找不到它(ClassNotFound)

Unable to get provider com.greystripe.android.sdk.AdContentProvider

您是否在 libs 文件夹中缺少一个 jar?

【讨论】:

  • 我认为错误现在消失了,但是有一个差异错误java.lang.IllegalStateException: problem parsing idx 1 这里是新 logcat new logcat 的链接。谢谢!
  • 您使用的是定制的安卓ROM吗?我找到了与您的错误相关的内容...检查一下...stackoverflow.com/questions/8241068/…
  • 就我对这些事情的有限了解而言,我没有使用任何自定义 rom。我的模拟器安卓版本是 4.0.3。重申一下,当我在模拟器中单击已安装的应用程序时,我收到此“不幸的是,应用程序已停止”错误。这是screenshot 的截图。感谢您的帮助!
  • 经过一些故障排除并从清单文件中删除提供程序后,我现在可以运行该应用程序。谢谢大家!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-21
  • 1970-01-01
  • 2013-03-17
相关资源
最近更新 更多