2015-10-09 127 views
11

我的应用程序在棒棒糖设备上运行良好,但它在版本棒棒糖之前不断崩溃。 我已经简单地实现我的应用程序下面的代码,通过谷歌机制的文档Android - 应用程序在Pre-Lollipop设备上崩溃

// Request for Ads 
      AdRequest adRequest = new AdRequest.Builder() 

        // Add a test device to show Test Ads 
       .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
       .build(); 

     // Load ads into Banner Ads 
     mAdView.loadAd(adRequest); 

使用

compileSdkVersion 23 
    buildToolsVersion "23.0.1" 

清单

<meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" /> 

     <activity 
      android:name="com.google.android.gms.ads.AdActivity" 
      android:configChanges="keyboard|keyboardHidden 
    |orientation|screenLayout|uiMode|screenSize|smallestScreenSize" /> 

错误的一面旗帜添加

E/AndroidRuntime: FATAL EXCEPTION: main 
E/AndroidRuntime: Process: com.app.aggro, PID: 13257 
E/AndroidRuntime: java.lang.VerifyError: 
    com/google/android/gms/measurement/internal/zzv 
E/AndroidRuntime: at 
com.google.android.gms.measurement.AppMeasurementContentProvider 
.onCreate(Unknown Source) 
E/AndroidRuntime:  at 
android.content.ContentProvider.attachInfo(ContentProvider.java:1656) 
E/AndroidRuntime:  at 
android.content.ContentProvider.attachInfo(ContentProvider.java:1627) 
E/AndroidRuntime:  at 
android.app.ActivityThread.installProvider(ActivityThread.java:5015) 
E/AndroidRuntime:  at 
android.app.ActivityThread.installContentProviders 
(ActivityThread.java:4589) 
E/AndroidRuntime:  at 
android.app.ActivityThread.handleBindApplication 
(ActivityThread.java:4522) 
E/AndroidRuntime:  at 
android.app.ActivityThread.access$1500(ActivityThread.java:151) 
E/AndroidRuntime:  at 
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1381) 
E/AndroidRuntime:  at 
android.os.Handler.dispatchMessage(Handler.java:110) 
E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:193) 
    E/AndroidRuntime:  at 
android.app.ActivityThread.main(ActivityThread.java:5299) 
E/AndroidRuntime:  at java.lang.reflect.Method.invokeNative(Native 
Method) 
E/AndroidRuntime:  at 
java.lang.reflect.Method.invoke(Method.java:515) 
E/AndroidRuntime:  at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run 
(ZygoteInit.java:825) 
E/AndroidRuntime:  at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641) 
E/AndroidRuntime:  at dalvik.system.NativeStart.main 
(Native Method) 

我的摇篮文件

apply plugin: 'com.android.application' 

buildscript { 
    repositories { 
     maven { url 'https://maven.fabric.io/public' } 
    } 

    dependencies { 
     classpath 'io.fabric.tools:gradle:1.+' 
    } 
} 
repositories { 
    mavenCentral() 
    maven { url 
"https://oss.sonatype.org/content/repositories/snapshots"} 
     maven { url 'https://maven.fabric.io/public' } 
     maven { url 
    "https://oss.sonatype.org/content/repositories/snapshots/" } 
    maven { url 'https://dl.bintray.com/drummer-aidan/maven' } 
} 
android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 

    defaultConfig { 
     applicationId "com.app.aggro" 
     minSdkVersion 15 
     targetSdkVersion 22 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard- 
android.txt'), 'proguard-rules.pro' 
     } 
    } 


    dexOptions{ 
     incremental true 
     javaMaxHeapSize "4g" 
    } 
    defaultConfig { 
     multiDexEnabled true 
    } 
    packagingOptions { 
     exclude 'META-INF/DEPENDENCIES' 
     exclude 'META-INF/NOTICE' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/NOTICE.txt' 
    } 
    } 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:23.0.1' 
    compile('com.mikepenz:materialdrawer:[email protected]') { 
     transitive = true 
    } 
    compile('com.github.florent37:materialviewpager:[email protected]') { 
     transitive = true 
    } 


    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
     transitive = true; 
    } 
    compile 'com.google.android.gms:play-services:8.1.0' 
    compile 'com.mcxiaoke.volley:library:1.0.+' 
    compile 'com.google.code.gson:gson:2.3.1' 
     compile 'com.marshalchen.ultimaterecyclerview:library:0.3.11' 
    compile 'com.android.support:recyclerview-v7:22.2.0' 
    compile 'com.android.support:cardview-v7:23.0.1' 
    compile 'com.jpardogo.googleprogressbar:library:1.2.0' 
     compile 'com.quinny898.library.persistentsearch:library:1.0.0- 
SNAPSHOT' 
    compile project(':storage') 
    compile 'com.getbase:floatingactionbutton:1.10.0' 
    compile 'com.parse.bolts:bolts-android:1.+' 
     compile files('libs/activeandroid-3.1-beta.jar') 
     compile 'com.android.support:design:23.0.1' 
     compile 'it.neokree:MaterialTabs:0.11' 
     compile 'com.miguelcatalan:materialsearchview:1.2.0' 
    } 

请帮我从这个问题脱身。

+0

检查,如果谷歌'玩在使用'AdRequest'之前,项目中的服务'是可用的项目。 – Tauqir

+0

是的,我已经包括在内,编译为'com.google.android.gms:play-services:8.1.0' 并且它正在使用棒棒糖,但它保留崩溃在奇巧 – Nirmal

+0

发布您的gradle文件。 –

回答

33

不是问题小时的扩张方式后,我发现我必须做一些修饰MyApplication类是这样的:

public class MyApplication extends Application { 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     // register with Active Android 
     ActiveAndroid.initialize(this); 
    } 

    @Override 
    protected void attachBaseContext(Context base) { 
     super.attachBaseContext(base); 
     MultiDex.install(this); 
    } 
} 

我已经重写了attachbaseContext方法现在一切正常。

+0

太棒了,它的工作完美... :) – Jayesh

+0

我们的Android Studio项目中的MyApplication类在哪里? –

+0

您需要创建一个。只需创建一个简单的java类并从Application类扩展它,就像我在答案中所看到的一样,并重写attachBaseContext方法。在您的应用程序构建gradle文件中还包括依赖项compile'c​​om.android.support:multidex:1.0.1'并且在清单应用程序标签中包含这样的类android:name =“。您的类名” – Nirmal

0

你应该降低你的AndroidManifest.xml中 棒棒堂的API是API 21

检查了这一点:API Levels 例子:

defaultConfig { 
     applicationId "com.package.name" 
     minSdkVersion 11 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 
+0

您可以解释一点,因为我已经降低了 Nirmal

0

减少你的minSdkVersion到要给予支持该版本

在您项目的gradle文件中

如下所示

的minSdkVersion 10

+0

我已经试过了之前但没有帮助 – Nirmal

4

+)构建超过65K方法的应用程序将导致此错误。

+)当你的应用程序,它引用达到一定规模(DEX文件的库应用程序的可以有方法总数高达65536包括Android框架方法,库方法,并在自己的代码的方法),您会遇到构建错误,表明您的应用已达到Android应用构建体系结构的限制。

+)要解决这个问题,包括Multidex配置的build.gradle像图片中的一个突出的,随着这与你的应用程序类重写attachBaseContext(上下文基地)方法下面的内容。

public class YourParentApplication extends Application { 

@Override 
protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    MultiDex.install(this); 
} 
} 

在你的AndroidManifest.xml补充一点:

<application 
    android:name=".YourParentApplication" 
    android:allowBackup="true" 
    android:icon="@drawable/radiius_logo" 
    android:label="@string/app_name" 
    android:largeHeap="true" 
    android:theme="@style/MyMaterialTheme"> 

有关的详细信息,请参阅Multidex这些网站 http://developer.android.com/tools/building/multidex.html

How to enable multidexing with the new Android Multidex support library

enter image description here

相关问题