1

Ich bin jeden Tag mit sehr frustrierenden Problem von ConstraintLayout in meinem Projekt konfrontiert.Einschränkungslayout. Probleme rendern. Layout Editor

Projekt gradle Datei:

buildscript { 

    ext.support_library_version = '27.0.2' 
    ext.play_services_version = '11.6.2' 
    ext.firebase_version = '11.6.2' 

    repositories { 
     jcenter() 
     google() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:3.0.1' 
     classpath 'io.realm:realm-gradle-plugin:4.2.0' 
     classpath 'com.google.gms:google-services:3.1.2' 

     classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3' 
     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
     google() 
     maven { url "https://maven.google.com" } 
     maven { url 'https://jitpack.io' } 
    } 
} 

Dies ist meine kurze Version von App gradle:

apply plugin: 'com.android.library' 
apply plugin: 'realm-android' 

// set to 'cmake', 'none' 
def nativeBuildSystem = 'none'//'cmake' 

realm { 
    syncEnabled = false 
} 

android { 
    defaultConfig { 
     targetSdkVersion 27 
     compileSdkVersion 27 
     minSdkVersion 21 
     // for using vectors for less than 21 API 
     vectorDrawables.useSupportLibrary = true 

     versionCode 56 
     dexOptions { 
      preDexLibraries true 
      javaMaxHeapSize "4g" 
     } 

     // Enabling multidex support. 
     multiDexEnabled true 
     versionName "1.6.5" 

     renderscriptTargetApi 2 
     renderscriptSupportModeEnabled true // Enable RS support 

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

    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_8 
     targetCompatibility JavaVersion.VERSION_1_8 
    } 
} 

configurations { 
    all*.exclude group: 'commons-logging', module: 'commons-logging' 
} 

dependencies { 
    implementation fileTree(include: ['*.jar'], dir: 'libs') 

    /********************************* Deep Linking Library *********************************************/ 
    api 'com.airbnb:deeplinkdispatch:3.1.1' 
    annotationProcessor 'com.airbnb:deeplinkdispatch-processor:3.1.1' 

    /********************************* Android SDK *********************************************/ 
    api "com.android.support:appcompat-v7:$support_library_version" 
    api 'com.android.support.constraint:constraint-layout:1.0.2' 
    api "com.android.support:percent:$support_library_version" 
    api "com.android.support:recyclerview-v7:$support_library_version" 
    api "com.android.support:gridlayout-v7:$support_library_version" 
    api "com.android.support:cardview-v7:$support_library_version" 
    api "com.android.support:design:$support_library_version" 
    api "com.android.support:support-vector-drawable:$support_library_version" 
    api "com.android.support:support-core-utils:$support_library_version" 
    api 'com.android.support:multidex:1.0.2' 

} 

unter dem, was ich im Layout-Editor finden Sie unter:

enter image description here

Unter meinen xml:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

</android.support.constraint.ConstraintLayout> 

Layout-Editor in diesem Fall sagt:

enter image description here

Und wenn ich auf anzeigen Exception klicken werde ich sehen:

java.lang.NegativeArraySizeException 
at android.support.constraint.R$styleable.<clinit>(Unknown Source) 
at android.support.constraint.ConstraintLayout.init(ConstraintLayout.java:440) 
at android.support.constraint.ConstraintLayout.<init>(ConstraintLayout.java:420) 
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.loadView(ViewLoader.java:222) 
at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:211) 
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:337) 
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:348) 
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:248) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:394) 
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:325) 
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:384) 
at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:193) 
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:547) 
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$3(RenderTask.java:681) 
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) 

ich viel ausprobiert, um zu lösen es aber ohne Erfolg. Ich nicht mit einfachen Ansätzen wie Invalidier Cache/clean Projekt/Projekt und etc ...

+0

zeigen Sie uns Ihre Java-Code und xml –

+0

es ist Rohteilanordnung Wurzel, die ohne Kinder Constraint-Layout ist nicht an allen – Vlad

+0

zeigen Sie Ihren XML-Code –

Antwort

1

gelöst Problem:
Es scheint, der Layout-Editor einige Probleme hat, wenn Sie zu viel Attribute in einem haben <declare-stylable> Tag definiert in Ihrem attr.xml!

Lösung:
Ich habe Attribute in einem <declare-stylable>-Tag.
Wenn ich Attribute entfernen, so habe ich , arbeitet der Layout-Editor.

Ich habe auch ein Problem auf dem Google-Issue Tracker hinzugefügt:
https://issuetracker.google.com/issues/71641021

UPDATE von Google Ausgabe:
Diese für die Android-Studio Version 3.1 behoben wurde.

+1

Ja !! Ich hatte gerne mehr als 100 Attr in 1 Vielen Dank. Es funktioniert schließlich! – Vlad

0

Verwenden Sie nicht ConstraintLayout sondern gehen Sie für Relative... oder Linear.... Das sollte funktionieren.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="16dp" 
    android:paddingRight="16dp" 
    android:orientation="vertical"> 
    <EditText 
     android:layout_width="match_parent" /> 
</LinearLayout> 
+0

Diese Antwort ist nicht relevant zu meiner Frage überhaupt. Wenn Sie meine Frage genauer betrachtet hätten, hätten Sie verstanden, was ich meinte. – Vlad

Verwandte Themen