动画编辑器预览未加载
Motion Editor Preview not Loading
我正在使用 MotionLayout 功能开发应用程序,但当我单击“设计”选项卡时,MotionLayout 编辑器出现问题并且不显示预览。
我得到的是一个空白预览,其中出现渲染错误,我一直试图解决该错误,但无济于事。
这就是我的。
这是我遇到的错误
java.lang.reflect.InvocationTargetException
at jdk.internal.reflect.GeneratedMethodAccessor586.invoke(Unknown Source)
atjava.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at android.view.BridgeInflater.lambda$createViewFromCustomInflater[=10=](BridgeInflater.java:259)
at android.view.BridgeInflater.createViewFromCustomInflater(BridgeInflater.java:285)
at android.view.BridgeInflater.onCreateView(BridgeInflater.java:122)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:928)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:948)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1002)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:309)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1121)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1095)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
at android.view.LayoutInflater.inflate(LayoutInflater.java:499)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:325)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:369)
at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:141)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:710)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate(RenderTask.java:865)
at com.android.tools.idea.rendering.RenderExecutor$runAsyncActionWithTimeout.run(RenderExecutor.kt:174)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47)
at java.base/java.lang.String.charAt(String.java:693)
at android.content.res.BridgeTypedArray.getType(BridgeTypedArray.java:1024)
at android.content.res.BridgeTypedArray.getType(BridgeTypedArray.java:809)
at android.content.res.BridgeTypedArray.getValue(BridgeTypedArray.java:778)
at android.content.res.BridgeTypedArray.peekValue(BridgeTypedArray.java:847)
at android.view.View.<init>(View.java:5951)
at android.view.ViewGroup.<init>(ViewGroup.java:697)
at android.widget.AdapterView.<init>(AdapterView.java:260)
at android.widget.AbsSpinner.<init>(AbsSpinner.java:74)
at android.widget.Spinner.<init>(Spinner.java:246)
at android.widget.Spinner.<init>(Spinner.java:213)
at android.widget.Spinner.<init>(Spinner.java:163)
at androidx.appcompat.widget.AppCompatSpinner.<init>(AppCompatSpinner.java:209)
at androidx.appcompat.widget.AppCompatSpinner.<init>(AppCompatSpinner.java:180)
at androidx.appcompat.widget.AppCompatSpinner.<init>(AppCompatSpinner.java:160)
at androidx.appcompat.widget.AppCompatSpinner.<init>(AppCompatSpinner.java:144)
at androidx.appcompat.app.AppCompatViewInflater.createSpinner(AppCompatViewInflater.java:214)
at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:131)
... 26 more
我在 Android 4.2 上,我正在为 Constraint Layou 使用此依赖项。
implementation "androidx.constraintlayout:constraintlayout:2.1.0-beta02"
类路径是
classpath "com.android.tools.build:gradle:4.2.0
这是我的 gradle 版本
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
我已尝试重启、使缓存无效、清理、重建、删除 .idea 中的 lib 文件夹以及删除 app/build 文件,但仍然无法获得预览并且渲染错误仍然存在。
这是我的link to the project,如果您能帮助我解决这个问题,我们将不胜感激。
玩了很久之后,我意识到这个问题是由我的 Spinner 上的一个属性引起的。
移除此属性后 MotionLayout Editor 预览有效!
我正在使用 MotionLayout 功能开发应用程序,但当我单击“设计”选项卡时,MotionLayout 编辑器出现问题并且不显示预览。
我得到的是一个空白预览,其中出现渲染错误,我一直试图解决该错误,但无济于事。
这就是我的。
这是我遇到的错误
java.lang.reflect.InvocationTargetException
at jdk.internal.reflect.GeneratedMethodAccessor586.invoke(Unknown Source)
atjava.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at android.view.BridgeInflater.lambda$createViewFromCustomInflater[=10=](BridgeInflater.java:259)
at android.view.BridgeInflater.createViewFromCustomInflater(BridgeInflater.java:285)
at android.view.BridgeInflater.onCreateView(BridgeInflater.java:122)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:928)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:948)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1002)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:309)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1121)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1095)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
at android.view.LayoutInflater.inflate(LayoutInflater.java:499)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:325)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:369)
at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:141)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:710)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate(RenderTask.java:865)
at com.android.tools.idea.rendering.RenderExecutor$runAsyncActionWithTimeout.run(RenderExecutor.kt:174)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47)
at java.base/java.lang.String.charAt(String.java:693)
at android.content.res.BridgeTypedArray.getType(BridgeTypedArray.java:1024)
at android.content.res.BridgeTypedArray.getType(BridgeTypedArray.java:809)
at android.content.res.BridgeTypedArray.getValue(BridgeTypedArray.java:778)
at android.content.res.BridgeTypedArray.peekValue(BridgeTypedArray.java:847)
at android.view.View.<init>(View.java:5951)
at android.view.ViewGroup.<init>(ViewGroup.java:697)
at android.widget.AdapterView.<init>(AdapterView.java:260)
at android.widget.AbsSpinner.<init>(AbsSpinner.java:74)
at android.widget.Spinner.<init>(Spinner.java:246)
at android.widget.Spinner.<init>(Spinner.java:213)
at android.widget.Spinner.<init>(Spinner.java:163)
at androidx.appcompat.widget.AppCompatSpinner.<init>(AppCompatSpinner.java:209)
at androidx.appcompat.widget.AppCompatSpinner.<init>(AppCompatSpinner.java:180)
at androidx.appcompat.widget.AppCompatSpinner.<init>(AppCompatSpinner.java:160)
at androidx.appcompat.widget.AppCompatSpinner.<init>(AppCompatSpinner.java:144)
at androidx.appcompat.app.AppCompatViewInflater.createSpinner(AppCompatViewInflater.java:214)
at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:131)
... 26 more
我在 Android 4.2 上,我正在为 Constraint Layou 使用此依赖项。
implementation "androidx.constraintlayout:constraintlayout:2.1.0-beta02"
类路径是
classpath "com.android.tools.build:gradle:4.2.0
这是我的 gradle 版本
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
我已尝试重启、使缓存无效、清理、重建、删除 .idea 中的 lib 文件夹以及删除 app/build 文件,但仍然无法获得预览并且渲染错误仍然存在。
这是我的link to the project,如果您能帮助我解决这个问题,我们将不胜感激。
玩了很久之后,我意识到这个问题是由我的 Spinner 上的一个属性引起的。
移除此属性后 MotionLayout Editor 预览有效!