アマゾンのモバイル広告APIを説明することを目的とした、アマゾンが提供するサンプルプロジェクトを実行しようとしていますが、エラーが発生しています。logcatの内容は次のとおりです。
11-18 02:34:49.470: W/dalvikvm(938): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
11-18 02:34:49.501: E/AndroidRuntime(938): FATAL EXCEPTION: main
11-18 02:34:49.501: E/AndroidRuntime(938): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.amazon.sample.simplead/com.amazon.sample.simplead.SimpleAdActivity}: java.lang.ClassNotFoundException: com.amazon.sample.simplead.SimpleAdActivity
11-18 02:34:49.501: E/AndroidRuntime(938): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1923)
11-18 02:34:49.501: E/AndroidRuntime(938): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2024)
11-18 02:34:49.501: E/AndroidRuntime(938): at android.app.ActivityThread.access$600(ActivityThread.java:126)
11-18 02:34:49.501: E/AndroidRuntime(938): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159)
11-18 02:34:49.501: E/AndroidRuntime(938): at android.os.Handler.dispatchMessage(Handler.java:99)
11-18 02:34:49.501: E/AndroidRuntime(938): at android.os.Looper.loop(Looper.java:137)
11-18 02:34:49.501: E/AndroidRuntime(938): at android.app.ActivityThread.main(ActivityThread.java:4479)
11-18 02:34:49.501: E/AndroidRuntime(938): at java.lang.reflect.Method.invokeNative(Native Method)
11-18 02:34:49.501: E/AndroidRuntime(938): at java.lang.reflect.Method.invoke(Method.java:511)
11-18 02:34:49.501: E/AndroidRuntime(938): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-18 02:34:49.501: E/AndroidRuntime(938): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-18 02:34:49.501: E/AndroidRuntime(938): at dalvik.system.NativeStart.main(Native Method)
11-18 02:34:49.501: E/AndroidRuntime(938): Caused by: java.lang.ClassNotFoundException: com.amazon.sample.simplead.SimpleAdActivity
11-18 02:34:49.501: E/AndroidRuntime(938): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
11-18 02:34:49.501: E/AndroidRuntime(938): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
11-18 02:34:49.501: E/AndroidRuntime(938): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
11-18 02:34:49.501: E/AndroidRuntime(938): at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
11-18 02:34:49.501: E/AndroidRuntime(938): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1914)
11-18 02:34:49.501: E/AndroidRuntime(938): ... 11 more
11-18 02:39:49.690: I/Process(938): Sending signal. PID: 938 SIG: 9
これがAndroidマニフェストファイルです:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.amazon.sample.simplead"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".SimpleAdActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.amazon.device.ads.MraidBrowser" android:configChanges="keyboardHidden|orientation"/>
<activity android:name="com.amazon.device.ads.VideoActionHandler" android:configChanges="keyboardHidden|orientation"/>
</application>
私は次のような行を変更してみました:
android:name=".SimpleAdActivity"
に
android:name="com.amazon.sample.simplead.SimpleAdActivity"
それでも同じエラーが発生します。
編集:これがクラスコードです
/**
* Copyright 2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at http://aws.amazon.com/apache2.0/
* or in the "license" file accompanying this file.
* This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.amazon.sample.simplead;
import com.amazon.device.ads.*;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
/**
* This is a simple app for testing ad loading capabilities of the Amazon Mobile Ads SDK.
* This app demonstrates ad loading, expanding and collapsing along with device rotation.
*/
public class SimpleAdActivity extends Activity implements AdListener
{
private AdLayout adView; // The ad view used to load and display the ad.
private static final String APP_ID = "sample-app-v1_pub-2"; // Sample App Key. Replace this variable with your App Key
private static final String LOG_TAG = "SimpleAdSample"; // Tag used to prefix all log messages
/**
* When the activity starts, load an ad and set up the button click event to load another ad when it's clicked.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// For debugging purposes enable logging, but disable for production builds
AdRegistration.enableLogging(this, true);
// For debugging purposes flag all ad requests as tests, but set to false for production builds
AdRegistration.enableTesting(this, true);
adView = (AdLayout)findViewById(R.id.ad_view);
adView.setListener(this);
try {
AdRegistration.setAppKey(getApplicationContext(), APP_ID);
} catch (Exception e) {
Log.e(LOG_TAG, "Exception thrown: " + e.toString());
return;
}
// Assign an onclick handler to the button that will load our ad.
Button button = (Button) findViewById(R.id.load_ad_button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
LoadAd();
}
});
// Calling load ad in the Activity's onCreate method allows a new ad to be loaded
// when the application starts and also when the device is rotated.
LoadAd();
}
/**
* Load a new ad.
*/
public void LoadAd() {
// Load the ad with the appropriate ad targeting options.
AdTargetingOptions adOptions = new AdTargetingOptions();
adView.loadAd(adOptions);
}
/**
* This event is called after a rich media ads has collapsed from an expanded state.
*/
@Override
public void onAdCollapsed(AdLayout view) {
Log.d(LOG_TAG, "Ad collapsed.");
}
/**
* This event is called if an ad fails to load.
*/
@Override
public void onAdFailedToLoad(AdLayout view, AdError error) {
Log.w(LOG_TAG, "Ad failed to load. Code: " + error.getResponseCode() + ", Message: " + error.getResponseMessage());
}
/**
* This event is called once an ad loads successfully.
*/
@Override
public void onAdLoaded(AdLayout view, AdProperties adProperties) {
Log.d(LOG_TAG, adProperties.getAdType().toString() + " Ad loaded successfully.");
}
/**
* This event is called after a rich media ad expands.
*/
@Override
public void onAdExpanded(AdLayout view) {
Log.d(LOG_TAG, "Ad expanded.");
}
}