2012-05-09 4 views
21

안녕하세요 저는 Android 개발자이고 admob입니다. 나는 버튼, 몇 페이지 및 아래쪽에 admob 간단한 테스트 애플 리케이션을 만들려고 노력하고 있습니다. admob 구현을 시도 할 때까지 모든 것이 잘 작동합니다.com.google.ads.AdView 클래스를 부 풀릴 때 오류가 발생했습니다.

HelloAndroid.java :

package com.manny.HelloAndroid; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ImageView; 

public class HelloAndroid extends Activity { 
    /** Called when the activity is first created. */ 
    private static final int ACTIVITY_CREATE = 0; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 


     setContentView(R.layout.main); 
     ImageView image = (ImageView) findViewById(R.id.test_image); 
     //image.setScaleType(ImageView.ScaleType.FIT_XY); 

    } 
    public void onClick(View v){ 
     Intent i = new Intent(this, HelloPage2.class); 
     startActivityForResult(i, ACTIVITY_CREATE); 
    } 
} 

main.xml에 :

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ImageView 
     android:id="@+id/test_image" 
     android:src="@drawable/bak_vert_480x800" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:scaleType="fitXY" 
     /> 

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/hello" /> 
    <ImageButton 
     android:id="@+id/test_button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/btn_arrow" 
     android:layout_marginLeft="100dp" 
     android:layout_marginTop="200dp" 
     android:onClick="onClick" 
     /> 
    <com.google.ads.AdView android:id="@+id/adView" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         ads:adUnitId="b14be806e9ddf1f" 
         ads:adSize="BANNER" 
         ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID" 
         ads:loadAdOnCreate="true"/> 

</RelativeLayout> 

안녕하세요 안드로이드 매니페스트 :

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

    <uses-sdk android:minSdkVersion="7" 
     android:targetSdkVersion="13"/> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> 
     <activity 
      android:name=".HelloAndroid" 
      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=".HelloPage2"> 
     </activity> 
    <activity android:name="com.google.ads.AdActivity" 
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|s mallestScreenSize"/> 
    </application> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
</manifest> 

로그 캣 출력 :

05-09 13:12:00.859: D/dalvikvm(24278): GC_EXTERNAL_ALLOC freed 51K, 44% free 3054K/5379K, external 2357K/2773K, paused 94ms 
05-09 13:12:00.937: D/dalvikvm(24278): GC_EXTERNAL_ALLOC freed 1K, 44% free 3053K/5379K, external 3857K/4816K, paused 31ms 
05-09 13:12:01.085: D/AndroidRuntime(24278): Shutting down VM 
05-09 13:12:01.085: W/dalvikvm(24278): threadid=1: thread exiting with uncaught exception (group=0x4001e560) 
05-09 13:12:01.109: E/AndroidRuntime(24278): FATAL EXCEPTION: main 
05-09 13:12:01.109: E/AndroidRuntime(24278): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.manny.HelloAndroid/com.manny.HelloAndroid.HelloAndroid}: android.view.InflateException: Binary XML file line #30: Error inflating class com.google.ads.AdView 
05-09 13:12:01.109: E/AndroidRuntime(24278): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1702) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1722) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at android.app.ActivityThread.access$1500(ActivityThread.java:124) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:974) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at android.os.Handler.dispatchMessage(Handler.java:99) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at android.os.Looper.loop(Looper.java:130) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at android.app.ActivityThread.main(ActivityThread.java:3821) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at java.lang.reflect.Method.invokeNative(Native Method) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at java.lang.reflect.Method.invoke(Method.java:507) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at dalvik.system.NativeStart.main(Native Method) 
05-09 13:12:01.109: E/AndroidRuntime(24278): Caused by: android.view.InflateException: Binary XML file line #30: Error inflating class com.google.ads.AdView 
05-09 13:12:01.109: E/AndroidRuntime(24278): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:581) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at android.view.LayoutInflater.inflate(LayoutInflater.java:408) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:253) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at android.app.Activity.setContentView(Activity.java:1716) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at com.manny.HelloAndroid.HelloAndroid.onCreate(HelloAndroid.java:17) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1666) 
05-09 13:12:01.109: E/AndroidRuntime(24278): ... 11 more 
05-09 13:12:01.109: E/AndroidRuntime(24278): Caused by: java.lang.ClassNotFoundException: com.google.ads.AdView in loader dalvik.system.PathClassLoader[/data/app/com.manny.HelloAndroid-2.apk] 
05-09 13:12:01.109: E/AndroidRuntime(24278): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at java.lang.ClassLoader.loadClass(ClassLoader.java:551) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at android.view.LayoutInflater.createView(LayoutInflater.java:471) 
05-09 13:12:01.109: E/AndroidRuntime(24278): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570) 
05-09 13:12:01.109: E/AndroidRuntime(24278): ... 20 more 
05-09 13:12:11.593: I/Process(24278): Sending signal. PID: 24278 SIG: 9 
여기 내 코드입니다

GoogleAdMobAdsSdkAndroid-6.0.0을 사용하고 있습니다. 다시 나는 이것에 아주 새롭다 나는 다수 위치 떨어져보기를 사용하여 시도했다 그러나 그것에있는 admob를 가진 페이지를 명중 할 때 app는 부술을 계속한다. 누군가가 나를 도울 수 있다면 많은 도움이 될 것입니다. 고맙습니다. 더 많은 코드가 필요하면 알려주십시오.

+0

AdMob SDK jar가 APK에 번들되지 않은 것 같습니다. 어떤 IDE를 사용하고 있습니까? – EpicOfChaos

+0

Eclipse 버전 : Helios Service Release 2 – classyhobo

답변

58

최근에 Android Tools를 r17 이상으로 업데이트하셨습니까? 그렇다면 프로젝트에 libs/폴더를 만들고 물리적으로 SDK를 프로젝트에 넣어야합니다. 또는 Java 빌드 경로에서 SDK jar를 주문하고 내 보내야합니다.

그렇지 않으면 apk가 컴파일 될 때 jar 파일이 포함되지 않으며 런타임에 AdMob 코드를 실행할 때 모든 문제가 해결되지 않습니다.

참고 : 이는 프로젝트에서 참조하는 모든 라이브러리에 적용됩니다.

+7

omg 감사합니다. 외부 항아리에 추가했는데 주문하지 않았고 내보낼 수 없습니다. – classyhobo

+0

yah mee 역시 libs 폴더를 만들고 라이브러리를 복사하여 붙여 넣었습니다. 이제 제대로 작동합니다. 나는 주문하지 않았고 수출도하지 않았다. –

+0

선생님, 저에게 제안 해주세요. http://stackoverflow.com/questions/25178044/android-admob-is-there-any-violation-to-remove-resources-from-google-play-serv –

2

이 문제도 발생했습니다. 빌드 경로는 내가 한 것에 관계없이 작동하지 않는 것 같습니다. 그래서 Eclipse를 종료하고 Workbench 패키지 디렉토리에 새 libs 폴더를 만들었습니다. 해당 폴더에 GoogleAdMobAdsSdk-6.0.1.jar를 추가했습니다. Jar 파일 만 SDK 전체를 추가하지 않았습니다. 그런 다음 Eclipse를 다시 시작합니다. Eclipse 외부에서 변경 한 내용을 표시하기 위해 프로젝트 관리자 열을 새로 고쳐야했습니다. 그것은 새로운 libs 폴더와 jar 파일을 보여 주지만, 여전히 작동하지 않습니다 ... 그렇다면 새로운 libs 폴더를 마우스 오른쪽 버튼으로 클릭하고 소스 폴더로 설정하십시오. 지금은 모든 일을합니다! 이클립스 버전을 사용

임 : 인디고 서비스 릴리스 2 빌드 ID : 20120216-1857

안드로이드 개발 도구 18.0.0.v201203301601-306762

어쩌면 도구는 앞서 문서 것 같다. .. 또는 어떤 종류의 이클립스 버그 .... 매우 악화!

1

나는 동일한 문제가 있었고 내보내기 목록을 정렬하는 것이 중요하다는 사실을 알았습니다.
이는 내 꺼야,이 방법은 작동 :

enter image description here

+0

AdMob 6.2.1에서 6.3.1 (개정 10)과 '주문 및 내보내기'목록 하단에 GoogleAdMobAdsSdk 옆에 체크 표시를하면 해결되지 않은 'Error inflating class com.google.ads.AdView' 오류가 발생했습니다. 스크린 샷을 보내 주셔서 감사합니다. AdMobAds SDK를 목록 맨 위로 이동하면 효과적입니다. –

0

내가했던 - 지금 나를 위해 노력하고 있습니다 - API 레벨 몹의 경우 17 :
- 해당 ID
과 레이아웃에 AdView가 코드를 추가 - 프로젝트 매니페스트 파일에 Admob 매니페스트 코드를 추가하십시오.
- 외부 GoogleAdmobAdsSDK ....를 추가하십시오. jar 파일 (Properties \ Java 빌드 경로)
- GoogleAdmobAdsSDK를 선택하려면 선택하십시오 ....jar in tab order and export
- ADT를 다시 시작하십시오.

DEGUB = 지금 작업하십시오.

10

나를 위해 그것은 이렇게 일했습니다.

  • 가까운 SDK 항아리 libs와 이동
  • 폴더에 나타납니다까지
  • 프로젝트를 새로 고침 프로젝트의 "libs와"폴더
  • 개방 이클립스 수동 SDK 광고 jar 파일을 추가 일식하여 프로젝트의 속성> Java 빌드 경로> 라이브러리 탭을 선택하고 외부 탭 대신 "Jar 추가"를 선택하십시오. 아래 목록에서 sdk를 선택하십시오.
  • "주문 및 내보내기"탭으로 이동하여 SDK를 다시 선택하십시오.
  • 확인을 클릭하고 완료되었습니다.

그런 다음 매니페스트와 xml에 적절한 코드를 추가하십시오.

+0

이것은 나를 위해 일했습니다. 감사! – Si8

+0

일식 다시 시작 모든 일을 마친 마침내 나를 도왔습니다. – aditya

0

Android Studio의 경우 : 1. Google AdMob SDK를 프로젝트의 libs 폴더에 붙여 넣습니다. 2. jar를 가리키는 프로젝트의 build.gradle의 종속성 섹션에 항목을 추가합니다. 3. 프로젝트 파일이 여러 개의 항아리 항목을합니다 컴파일

dependencies { 
... 
compile files('libs/GoogleAdMobAdsSdk-6.4.1.jar', '... other entries...') 
} 

주를 다시 빌드합니다. 이미 파일 항목을 컴파일 한 경우 항목을 쉼표로 구분하여 추가 할 수 있습니다.

0

같은 오류가 나에게 나타납니다 그리고 당신이 바로 프로젝트 -> Android 기기,> 응용 프로그램 전투를 제거하고 당신이 선택한 안드로이드를 만들기를 클릭하여 제거하기위한 프로젝트 에서 appcombat 종속성을 제거 할 필요가 몇 가지 간단한 단계로 해결 4.2.2 그런 다음 Google admob jar를 프로젝트로 가져옵니다.

관련 문제