2011-01-09 10 views
0

Okay, so habe ich in die adwhirl jar und Berechtigungen und all das und ich füge das Layout zu meinem Haupt-XML und fügte die Java-Zeug, ich habe keine Fehler oder Warnungen, so dass ich sehr verwirrt bin, was ich mache ich falsch. Hier ist mein Quellcode, Layout, manifestieren, und melden Sie sich KatzeProblem mit der Implementierung Adwhirl

JAVA SOURCE CODE

public class ListA extends Activity implements OnClickListener, AdWhirlInterface { 
    //**Sets the EditText view to txtNumber 
    EditText txtNumber = null; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     LinearLayout layout = (LinearLayout) findViewById(R.id.layout_main); 

     if (layout == null) { 
      Log.e("AdWhirl", "Layout is null!"); 
      return; 
     } 

     // These are density-independent pixel units, as defined in 
     // http://developer.android.com/guide/practices/screens_support.html 
     int width = 320; 
     int height = 52; 

     DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); 
     float density = displayMetrics.density; 

     width = (int) (width * density); 
     height = (int) (height * density); 

     AdWhirlTargeting.setAge(23); 
     AdWhirlTargeting.setGender(AdWhirlTargeting.Gender.MALE); 
     String keywords[] = { "online", "games", "gaming" }; 
     AdWhirlTargeting 
      .setKeywordSet(new HashSet<String>(Arrays.asList(keywords))); 
     AdWhirlTargeting.setPostalCode("94123"); 
     AdWhirlTargeting.setTestMode(false); 

     AdWhirlAdapter.setGoogleAdSenseAppName("AdWhirl Test App"); 
     AdWhirlAdapter.setGoogleAdSenseCompanyName("AdWhirl"); 

     // Optional, will fetch new config if necessary after five minutes. 
     AdWhirlManager.setConfigExpireTimeout(1000 * 60 * 5); 

     // References AdWhirlLayout defined in the layout XML. 
     AdWhirlLayout adWhirlLayout = (AdWhirlLayout) findViewById(R.id.adwhirl_layout); 
     adWhirlLayout.setAdWhirlInterface(this); 
     adWhirlLayout.setMaxWidth(width); 
     adWhirlLayout.setMaxHeight(height); 

     // Instantiates AdWhirlLayout from code. 
     // Note: Showing two ads on the same screen is for illustrative purposes 
     // only. 
     // You should check with ad networks on their specific policies. 
     AdWhirlLayout adWhirlLayout2 = new AdWhirlLayout(this, 
      "46a9e26bb1f5499ab7b00c9807ae034b"); 
     adWhirlLayout2.setAdWhirlInterface(this); 
     adWhirlLayout2.setMaxWidth(width); 
     adWhirlLayout2.setMaxHeight(height); 
     RelativeLayout.LayoutParams adWhirlLayoutParams = new RelativeLayout.LayoutParams(
      LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     adWhirlLayoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL); 
     layout.setGravity(Gravity.CENTER_HORIZONTAL); 
     layout.addView(adWhirlLayout2, adWhirlLayoutParams); 

     TextView textView = new TextView(this); 
     textView.setText("Below AdWhirlLayout from code"); 
     layout.addView(textView, adWhirlLayoutParams); 
     layout.setGravity(Gravity.CENTER_HORIZONTAL); 
     layout.invalidate(); 
     } 

     public void adWhirlGeneric() { 
     Log.e(AdWhirlUtil.ADWHIRL, "In adWhirlGeneric()"); 

     //**This makes it so that the EditText view can be called 
     //**into the dialer 
     txtNumber = (EditText)(this.findViewById(R.id.txtNumber)); 

     //**Handles what the button dialer is going to do 
     final Button btndialer = (Button) findViewById(R.id.dialer); 
     btndialer.setOnClickListener(new OnClickListener(){ 

      public void onClick(View v) { 

      Intent dialIntent= 
      new Intent(Intent.ACTION_CALL,Uri.parse("tel:*"+(txtNumber.getText()).toString())); 
      startActivity(dialIntent); 
      finish(); 

      Toast.makeText(ListA.this, R.string.Dial_notification, 
        Toast.LENGTH_LONG).show(); 

       } 
       }); 

     //**Handles what the button redialer is going to do 
     Button btnredialer = (Button) findViewById(R.id.redialer); 
     btnredialer.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 

      Intent dialIntent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:*")); 
      startActivity(dialIntent); 

      Toast.makeText(ListA.this, R.string.Dial_notification, 
        Toast.LENGTH_LONG).show(); 

       } 
       }); 
    } 

    //**This calls the contacts view using the button. 
    //**Make sure to use import android.provider.Contact.contacts; 
    //**Do not use import android.provider.contacts; (this is for an older version) 
    private static final int CONTACT_PICKER_RESULT = 1001; 

    public void doLaunchContactPicker(View view) { 
     Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, 
       Contacts.CONTENT_URI); 
     startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT); 
    } 
    public void onClick(View view) { 

} 
    //**Grabs the results for the contact picker and calls it back into the activity. 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

     if (resultCode == RESULT_OK) { 
      switch (requestCode) { 
      case CONTACT_PICKER_RESULT: 
       Cursor cursor = null; 
       String Number = ""; 
       try { 
        Uri result = data.getData(); 
        Log.v(NOTIFICATION_SERVICE, "Got a contact result: " 
          + result.toString()); 

        // get the contact id from the Uri 
        String id = result.getLastPathSegment(); 

        // query for everything email 
        cursor = getContentResolver().query(Phone.CONTENT_URI, 
          null, Phone.CONTACT_ID + "=?", new String[] { id }, 
          null); 

        int emailIdx = cursor.getColumnIndex(Phone.DATA); 

        // let's just get the first email 
        if (cursor.moveToFirst()) { 
         Number = cursor.getString(emailIdx); 
         Log.v(NOTIFICATION_SERVICE, "Got email: " + Number); 
        } else { 
         Log.w(NOTIFICATION_SERVICE, "No results"); 
        } 
       } catch (Exception e) { 
        Log.e(NOTIFICATION_SERVICE, "Failed to get email data", e); 
       } finally { 
        if (cursor != null) { 
         cursor.close(); 
        } 
        EditText emailEntry = (EditText) findViewById(R.id.txtNumber); 
        emailEntry.setText(Number); 
        if (Number.length() == 0) { 
         Toast.makeText(this, "No email found for contact.", 
           Toast.LENGTH_LONG).show(); 
        } 

       } 

       break; 
      } 

     } else { 
      Log.w(NOTIFICATION_SERVICE, "Warning: activity result not ok"); 
     } 


} 
    public boolean onCreateOptionsMenu(Menu menu) { 
      MenuInflater inflater = getMenuInflater(); 
      inflater.inflate(R.menu.menu, menu); 
      return true;    

     } 
      public boolean onOptionsItemSelected(MenuItem item) { 
       // Handle item selection 
       switch (item.getItemId()) { 
       case R.id.item1: 
        Intent i = new Intent(ListA.this, straightapp.class); 
        startActivity(i); 
        finish(); 
        return true; 

       default: 
        return super.onOptionsItemSelected(item); 
       } 
      } 

} 

main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res/com.adwhirl" 
    android:orientation="vertical" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:focusable="true" 
    android:id="@+id/layout_main"> 
<Button android:id="@+id/Button01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:onClick="doLaunchContactPicker" android:text="@string/GetContacts"> 
</Button> 
<EditText 
    android:hint="@string/hint" 
    android:id="@+id/txtNumber" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:inputType="phone"> 
</EditText> 
<Button 
    android:text="@string/dialer" 
    android:id="@+id/dialer" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:onClick="OnClick"> 
</Button> 
<Button 
    android:text="@string/redialer" 
    android:id="@+id/redialer" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:onClick="OnClick2"> 
</Button> 
<com.adwhirl.AdWhirlLayout 
     android:id="@+id/adwhirl_layout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 

MANIFESTEN

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.app" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".ListA" 
        android:label="@string/app_name"> 
      <intent-filter> 

       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 
<meta-data android:value="bef8fbbc34c64ceaa67d1c230e864150" 
     android:name="ADWHIRL_KEY"/> 
</activity> 
<activity android:name="straightapp"></activity> 
</application> 
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission> 
<uses-permission android:name="android.permission.CALL_PHONE"/> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
<uses-permission android:name="android.permission.ACCESS_COARSE"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

</manifest> 

LOG CAT

01-09 12:33:29.586: DEBUG/AndroidRuntime(663): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<< 

01-09 12:33:29.586: DEBUG/AndroidRuntime(663): CheckJNI is ON 

01-09 12:33:29.786: DEBUG/AndroidRuntime(663): --- registering native functions --- 

01-09 12:33:30.546: DEBUG/AndroidRuntime(663): Shutting down VM 

01-09 12:33:30.556: DEBUG/dalvikvm(663): Debugger has detached; object registry had 1 entries 

01-09 12:33:30.576: INFO/AndroidRuntime(663): NOTE: attach of thread 'Binder Thread #3' failed 

01-09 12:33:31.116: DEBUG/AndroidRuntime(671): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<< 

01-09 12:33:31.116: DEBUG/AndroidRuntime(671): CheckJNI is ON 

01-09 12:33:31.316: DEBUG/AndroidRuntime(671): --- registering native functions --- 

01-09 12:33:32.077: INFO/ActivityManager(59): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.adapter/.ListA } 

01-09 12:33:32.117: INFO/ActivityManager(59): Start proc com.adapter for activity com.adapter/.ListA: pid=677 uid=10037 gids={3003, 1015} 

01-09 12:33:32.157: DEBUG/AndroidRuntime(671): Shutting down VM 

01-09 12:33:32.187: DEBUG/dalvikvm(671): Debugger has detached; object registry had 1 entries 

01-09 12:33:32.207: INFO/AndroidRuntime(671): NOTE: attach of thread 'Binder Thread #3' failed 

01-09 12:33:32.927: DEBUG/AndroidRuntime(677): Shutting down VM 

01-09 12:33:32.977: WARN/dalvikvm(677): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 

01-09 12:33:33.017: ERROR/AndroidRuntime(677): FATAL EXCEPTION: main 

01-09 12:33:33.017: ERROR/AndroidRuntime(677): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.adapter/com.adapter.ListA}: java.lang.ClassNotFoundException: com.adapter.ListA in loader dalvik.system.PathClassLoader[/data/app/com.adapter-2.apk] 

01-09 12:33:33.017: ERROR/AndroidRuntime(677):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585) 

01-09 12:33:33.017: ERROR/AndroidRuntime(677):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 

01-09 12:33:33.017: ERROR/AndroidRuntime(677):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 

01-09 12:33:33.017: ERROR/AndroidRuntime(677):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 

01-09 12:33:33.017: ERROR/AndroidRuntime(677):  at android.os.Handler.dispatchMessage(Handler.java:99) 

01-09 12:33:33.017: ERROR/AndroidRuntime(677):  at android.os.Looper.loop(Looper.java:123) 

01-09 12:33:33.017: ERROR/AndroidRuntime(677):  at android.app.ActivityThread.main(ActivityThread.java:4627) 

01-09 12:33:33.017: ERROR/AndroidRuntime(677):  at java.lang.reflect.Method.invokeNative(Native Method) 

01-09 12:33:33.017: ERROR/AndroidRuntime(677):  at java.lang.reflect.Method.invoke(Method.java:521) 

01-09 12:33:33.017: ERROR/AndroidRuntime(677):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 

01-09 12:33:33.017: ERROR/AndroidRuntime(677):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 

01-09 12:33:33.017: ERROR/AndroidRuntime(677):  at dalvik.system.NativeStart.main(Native Method) 

01-09 12:33:33.017: ERROR/AndroidRuntime(677): Caused by: java.lang.ClassNotFoundException: com.adapter.ListA in loader dalvik.system.PathClassLoader[/data/app/com.adapter-2.apk] 

01-09 12:33:33.017: ERROR/AndroidRuntime(677):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 

01-09 12:33:33.017: ERROR/AndroidRuntime(677):  at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 

01-09 12:33:33.017: ERROR/AndroidRuntime(677):  at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 

01-09 12:33:33.017: ERROR/AndroidRuntime(677):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 

01-09 12:33:33.017: ERROR/AndroidRuntime(677):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577) 
01-09 12:33:33.017: ERROR/AndroidRuntime(677):  ... 11 more 

01-09 12:33:33.037: WARN/ActivityManager(59): Force finishing activity com.adapter/.ListA 

01-09 12:33:33.567: WARN/ActivityManager(59): Activity pause timeout for HistoryRecord{4403a418 com.adapter/.ListA} 

01-09 12:33:35.176: INFO/Process(677): Sending signal. PID: 677 SIG: 9 

01-09 12:33:35.196: INFO/ActivityManager(59): Process com.adapter (pid 677) has died. 

01-09 12:33:35.216: WARN/InputManagerService(59): Window already focused, ignoring focus gain of: [email protected] 

01-09 12:33:43.859: WARN/ActivityManager(59): Activity destroy timeout for HistoryRecord{4403a418 com.adapter/.ListA} 
+1

Könnten Sie Ihre Frage ein wenig neu modellieren? Es ist ein bisschen durcheinander. Vielleicht die relevanten Teile herausfiltern, zumindest von deinem Logcat? – Nanne

+0

sollte ich nur die fehler von der log cat? – Christian

+0

Ich habe deine Frage so gut wie möglich formatiert. Niemand braucht wirklich dein gesamtes Projekt. Nur die wichtigsten Teile davon. In diesem Fall wäre es zuerst der Logcat-Ausgang gewesen. –

Antwort

0

es herausgefunden. Es hatte nichts mit adwhirl zu tun, das ich durchging und meine Bewerbung auf basic herunterbrachte und es immer noch zwangsweise geschlossen, so dass es alles in meinem Hauptprojekt war. es ist jetzt herausgefunden.

+0

Können Sie mir bitte vorschlagen, mit adwhirl zu arbeiten? –

Verwandte Themen