web-dev-qa-db-ja.com

Android studio(Android Studio 1.2)でのレイアウトプレビューレンダリングの問題

最新バージョンAndroid Studio(1.2)のプレビューウィンドウに次のエラーが表示され、作成中のレイアウトを表示できなくなります。 Android studioを数回再起動するだけでなく、プロジェクトのクリーニング、再構築、およびコンピューターの再起動を試みました

編集:

他の古いプロジェクトが正常に機能する一方で、一部のプロジェクトには同じエラーがあります

The following classes could not be instantiated:
- Android.support.v7.internal.widget.ActionBarOverlayLayout (Open Class, Show Exception, Clear Cache)

例外の詳細

  Java.lang.NoClassDefFoundError:       Android/support/v7/internal/widget/ActionBarOverlayLayout$1
    at Android.support.v7.internal.widget.ActionBarOverlayLayout.<init>(ActionBarOverlayLayout.Java:93)
    at Sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at Sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.Java:39)
    at Sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.Java:27)
    at Java.lang.reflect.Constructor.newInstance(Constructor.Java:513)
    at org.jetbrains.Android.uipreview.ViewLoader.createNewInstance(ViewLoader.Java:413)
    at org.jetbrains.Android.uipreview.ViewLoader.loadView(ViewLoader.Java:105)
    at com.Android.tools.idea.rendering.LayoutlibCallback.loadView(LayoutlibCallback.Java:177)
    at Android.view.BridgeInflater.loadCustomView(BridgeInflater.Java:214)
    at Android.view.BridgeInflater.createViewFromTag(BridgeInflater.Java:142)
    at Android.view.LayoutInflater.inflate(LayoutInflater.Java:482)
    at Android.view.LayoutInflater.inflate(LayoutInflater.Java:414)
    at com.Android.layoutlib.bridge.bars.BridgeActionBar.<init>(BridgeActionBar.Java:84)
    at com.Android.layoutlib.bridge.bars.AppCompatActionBar.<init>(AppCompatActionBar.Java:56)
    at com.Android.layoutlib.bridge.impl.RenderSessionImpl.createActionBar(RenderSessionImpl.Java:1691)
    at com.Android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.Java:362)
    at com.Android.layoutlib.bridge.Bridge.createSession(Bridge.Java:321)
    at com.Android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.Java:350)
    at com.Android.tools.idea.rendering.RenderTask$2.compute(RenderTask.Java:497)
    at com.Android.tools.idea.rendering.RenderTask$2.compute(RenderTask.Java:485)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.Java:894)
    at com.Android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.Java:485)
    at com.Android.tools.idea.rendering.RenderTask.render(RenderTask.Java:590)
    at org.jetbrains.Android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.Java:644)
    at org.jetbrains.Android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1700(AndroidLayoutPreviewToolWindowManager.Java:79)
    at org.jetbrains.Android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1.run(AndroidLayoutPreviewToolWindowManager.Java:586)
    at com.intellij.openapi.progress.impl.CoreProgressManager$2.run(CoreProgressManager.Java:152)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.Java:452)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.Java:402)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.Java:54)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.Java:137)
    at org.jetbrains.Android.uipreview.AndroidLayoutPreviewToolWindowManager$7.run(AndroidLayoutPreviewToolWindowManager.Java:581)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.Java:320)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.Java:310)
    at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.Java:254)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.Java:269)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.Java:227)
    at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.Java:217)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.Java:238)
    at com.intellij.util.Alarm$Request$1.run(Alarm.Java:351)
    at Java.util.concurrent.Executors$RunnableAdapter.call(Executors.Java:439)
    at Java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.Java:303)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:138)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.Java:895)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:918)
    at Java.lang.Thread.run(Thread.Java:695)
8
MichaelStoddart

以下のコードを使用してベースアプリケーションのテーマを変更してみてください-res/values/styles.xml

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
</style>

[〜#〜]または[〜#〜]

また、プレビューの設定からプレビューのAPIレベルを下げるように切り替えることもできます。

enter image description here

31
deniz

ここで説明されているように、Gradleをバージョン1.2.3に更新することもできます: https://code.google.com/p/Android/issues/detail?id=171417

どうやら これはGradleのバージョン1.2.2のバグであり、次のバージョンからAndroid studio Gradle 1.2.3が新しいプロジェクトのデフォルトになります。

少なくともそれは働いた。

Base.Theme.AppCompat ....はTheme.AppCompat ....の superclass ですが、とにかく、Gradleの新しいバージョンを使用した修正を好みます。

私のために働いた、それがあなたのために働くことを願っています。

また、プロジェクトをクリーンアップして再構築する必要がありました。

4
Antonio Ribeiro

最も簡単な方法は、AppThemeをクリックしてアプリケーションのテーマを変更することです。

これはコードを変更する必要はありません。

下の画像を添付

AppThemeのソリューションレンダリング問題の例Android studio