赞
踩
使用v7 包注意事项:
第一种报错:
AndroidRuntime: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/appcompat/R$styleable;
11-24 11:01:16.642 2040 2040 E AndroidRuntime: Process: com.qinggan.airtrip, PID: 2040
11-24 11:01:16.642 2040 2040 E AndroidRuntime: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/appcompat/R$styleable;
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:327)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:300)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:264)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at com.qinggan.app.airtrip.ui.home.AirTripMainActivity.onQGPreCreate(AirTripMainActivity.java:134)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at com.qinggan.app.airtrip.PreLoaderActivity.onCreate(PreLoaderActivity.java:29)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:6264)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2478)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at android.app.ActivityThread.-wrap11(ActivityThread.java)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5447)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:729)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.appcompat.R$styleable" on path: DexPathList[[zip file "/data/app/com.qing]
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: ... 18 more
11-24 11:01:16.642 2040 2040 E AndroidRuntime: Suppressed: java.lang.ClassNotFoundException: android.support.v7.appcompat.R$styleable
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at java.lang.Class.classForName(Native Method)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
11-24 11:01:16.642 2040 2040 E AndroidRuntime: ... 19 more
11-24 11:01:16.642 2040 2040 E AndroidRuntime: Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
[ 181.120425] bootwatch: system boot normal, exit watch.
原因是:找不到pat/R$styleable; style是资源文件。找不到资源文件。如果想要有资源文件,需要是aar 。 看build.gradle 中:
compile files('libs/android-support-v7-appcompat.jar')
引用的是v7 jar包。所以没有资源文件导致crash。
改正:
compile 'com.android.support:appcompat-v7:25.0.0'
第二种:
Fragment 引用的v4 包下的, 获取FragmentTransaction 也是使用的 getSupportFragmentManager 。但是一直报错,找不到
getSupportFragmentManager 。 原因是 activity 没有使用 AppCompatActivity而是使用的Activity ,所以getSupportFragmentManager 找不到。
第三种:
主题配置错误,引用v7后,AppCompatActivity , Application 配置主题,需要使用
Theme.AppCompat.Light.NoActionBar
否则会crash。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。