2017-07-20 128 views
1

我有一个Android Studio 3.0 Canary的问题。 在所有项目中,我无法在预览工具中使用支持库中的任何视图。它显示渲染错误。在新项目中是同样的问题。支持库和ViewBackgroundHelper

Samople代码:

<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Hello World!" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toTopOf="parent" /> 
</android.support.constraint.ConstraintLayout> 

,并在预览看起来 screenshot

登录:

java.lang.NoSuchFieldError: ViewBackgroundHelper at android.support.v7.widget.AppCompatBackgroundHelper.loadFromAttributes(AppCompatBackgroundHelper.java:46) at android.support.v7.widget.AppCompatImageView.(AppCompatImageView.java:73) at android.support.v7.widget.AppCompatImageView.(AppCompatImageView.java:66) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:481) at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:264) at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:215) at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadClass(LayoutlibCallbackImpl.java:214) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:336) at android.view.BridgeInflater.onCreateView(BridgeInflater.java:155) at android.view.LayoutInflater.onCreateView(LayoutInflater.java:720) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:788) at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:225) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:863) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72) at android.view.LayoutInflater.rInflate(LayoutInflater.java:837) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at com.android.layoutlib.bridge.bars.CustomBar.(CustomBar.java:90) at com.android.layoutlib.bridge.bars.NavigationBar.(NavigationBar.java:52) at com.android.layoutlib.bridge.bars.NavigationBar.(NavigationBar.java:46) at com.android.layoutlib.bridge.impl.Layout.createNavBar(Layout.java:325) at com.android.layoutlib.bridge.impl.Layout.(Layout.java:151) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:288) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:382) at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:193) at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:591) at com.android.tools.idea.rendering.RenderTask.lambda$inflate$3(RenderTask.java:739) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

gradle这个:

android { 
    compileSdkVersion 26 
    buildToolsVersion 25.0.3 
    defaultConfig { 
     minSdkVersion 21 
     targetSdkVersion 26 
     versionCode getAutoVersionCode() 
     versionName getAutoVersionName() 

     applicationId "***" 

     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 

     multiDexEnabled true 

     printf("\n--------" + "VERSION DATA--------" + "\n" + "- PACKAGE: " + applicationId + "\n" + "- CODE: " + versionCode + "\n" + 
       "- NAME: " + versionName + "\n- APK: ${archivesBaseName}" + "\n----------------------------\n") 

     vectorDrawables.useSupportLibrary = true 
    } 

    useLibrary 'org.apache.http.legacy' 

    configurations.all { 
     resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9' 
    } 

    flavorDimensions "versionOfApp" 

    productFlavors { 
     dev { 
      applicationIdSuffix ".dev" 
      versionCode getAutoVersionCode() 
      versionName getAutoVersionName() + "[dev]" 
      dimension "versionOfApp" 
     } 
     prod { 
      versionCode getAutoVersionCode() 
      versionName getAutoVersionName() 
      dimension "versionOfApp" 
     } 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_8 
     targetCompatibility JavaVersion.VERSION_1_8 
    } 
} 

dependencies { 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    testCompile 'junit:junit:4.12' 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile "com.android.support:appcompat-v7:26.0.0-beta1" 
    compile project(':core') 
    compile project(':data') 

    // various 
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0' 
    // widgets 
    compile 'com.mikepenz:materialdrawer:5.9.4' 
    compile "com.android.support:cardview-v7:26.0.0-beta1" 
    compile "com.android.support:customtabs:26.0.0-beta1" 
    //Multidex 
    compile 'com.android.support:multidex:1.0.1' 
    //Timber 
    compile 'com.jakewharton.timber:timber:4.5.1' 
    //pager bullet 
    compile 'com.robohorse.pagerbullet:pagerbullet:1.0.8' 
    //fb 
    compile 'com.facebook.stetho:stetho:1.5.0' 
    compile 'com.facebook.android:facebook-android-sdk:4.24.0' 

    //glide 
    compile 'com.github.bumptech.glide:glide:4.0.0-RC1' 
    annotationProcessor 'com.github.bumptech.glide:compiler:4.0.0-RC1' 

    //Photo 
    compile 'com.github.chrisbanes:PhotoView:2.1.2' 

    //joda 
    compile 'net.danlew:android.joda:2.9.5' 

    implementation 'com.google.firebase:firebase-messaging:11.0.2' 
} 

apply plugin: 'com.google.gms.google-services' 
+0

发布你的应用'build.gradle' –

+0

我仍然遇到同样的问题26.0.0 stable,Android Studio 3 canary 8 –

回答

0

这是起诉可以通过添加 android.enableBuildCache=false到你的gradle.properties文件并重建项目禁用构建缓存来解决。你也可以看到围绕这个bug here的讨论。

+0

仍然是同样的问题 – grabos

0

这是Android的支持库版本“26.0.0-β2'

使用与

buildToolsVersion '26.0.0' 

classpath 'com.android.tools.build:gradle:3.0.0-alpha5' 

寄托都错误,

compile 'com.android.support:appcompat-v7:26.0.0-beta1' 

应该工作得很好!

+1

仍然是同样的问题 – grabos