web-dev-qa-db-ja.com

Android Studio 2.3 Beta 1+サポート25.1.0 =プレビューが壊れています

Android Studio 2.3 Canary3。サポートライブラリ25.1.0。

レイアウトのプレビューは完全に壊れています。サポート関連のビューを含むものはすべて、プレビュー中に壊れているようです。

すべての場合において、これはスタックの始まりです。

Exception Details Java.lang.NoSuchFieldError: ViewBackgroundHelper   
at Android.support.v7.widget.AppCompatBackgroundHelper.loadFromAttributes(AppCompatBackgroundHelper.Java:46)   
at Android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.Java:63)   
at Android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.Java:56)
....

..など.

レイアウトがどのようなものであるかは関係ありませんが、私は今、この血まみれのViewBackgroundHelper関連の問題が発生しています。レイアウトの種類やビューが何であるかは問題ではないようです。AppCompatを通過するように見えるものはすべて、プレビューでこのエラーが発生します。

これは今まで見たことがありません。以前はAndroid Studio 2.3 Canary 2+サポートライブラリ25.0.1がありました。

everアップグレードAndroid Studioまたはそのサポートライブラリは、このタイプのものに何時間も費やさずに実行することは不可能のようです、ねえ?

ヒントをありがとう、ありがとう-

[〜#〜]更新[〜#〜]

私だけではないようです。ここに記録されているバグを見つけました。すでに多くの人が主演しています。

https://code.google.com/p/Android/issues/detail?id=23018

UPDATE 2

AS 2.3 Beta1にはまだ問題があります。それでもレイアウトが表示されません。同じJava.lang.NoSuchFieldError: ViewBackgroundHelperどこでもエラー。

21
Matthew Housser

すべてが機能するようになりました。

  1. 今日、最新のAndroid Studio:2.3 Beta3にアップグレードしました
  2. 最新のcom.Android.tools.build:gradle:2.3.0-beta3に更新するように求められました

再起動、無効化、再構築。 6週間ぶりに、すべてが最終的にプレビューペインで完全にレンダリングされます

彼らはそれを修正したようです。 最後に

5
Matthew Housser

課題追跡システムによると、2017年1月10日現在:

https://code.google.com/p/Android/issues/detail?id=23018

2.3.0-beta1 Gradleプラグインを使用している場合は、追加してビルドキャッシュを無効にしてください。

Android.enableBuildCache=false

gradle.propertiesファイルに追加して、問題が解決するかどうかをお知らせください。 gradle.propertiesに行を追加したら、プロジェクトを再構築してください。

ありがとう。

一部のユーザーの問題を解決することが証明されています。

6
Tim Malseed

トラッカーに問題を提出しました。他の参加者は、Android以外のライブラリの依存関係を削除すると、問題が解決することを発見しました。それに基づいて、私は解決策を見つけました(問題スレッドから再投稿されました):

これをさらに調査した後の追加情報:

Android Studio 2.2.3
2016年12月2日にビルドされたビルド#AI-145.3537739
JRE:1.8.0_76-release-b03 AMD64
JVM:OpenJDK64ビットサーバーVM by JetBrains s.r.o

サポートライブラリ:25.1.0
ビルドツール:25.​​0.2

上記のスタジオバージョン(2.2.3 Stable)でこれを再現できた後、このスレッドで他の人から提供された情報に基づいて、他のライブラリの依存関係を削除し始めました。書道ライブラリ( https://github.com/chrisjenx/Calligraphy )と関連コードを削除した後、レイアウトプレビューが再び正しく機能し始めました。

興味深いことに、書道ライブラリを再度追加することができ、レイアウトプレビューは引き続き機能しました。たぶん、これはAndroid gradleプラグインのキャッシュの問題を示していますか?

この問題に遭遇している他の人のために、私は以下を提案します:
1。問題の原因となっているライブラリを特定します
2。ライブラリの依存関係と関連するコードを削除します
3。完全にクリーンアップしてビルドします
4。レイアウトプレビューが機能することを確認します
5。ライブラリの依存関係を再度追加する
6。完全にクリーンアップしてビルドします
7。レイアウトプレビューが機能することを確認します

注:書道は「fontPath」と呼ばれるカスタムxml属性といくつかのコンテキスト操作に依存しているため、問題の原因であると思われます。内部でビュー操作を行うライブラリがある場合は、最初にそれらを削除することをお勧めします。

2
Jeff Jones

AppThemeスタイルを次のように変更します。

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
</style>
1
Darush

私は解決策を持っています問題はAndroid Studioのバージョンではありません。

問題は、Gradleバージョンが安定バージョン2.2.3に戻ることです。これは、いくつかのテストの後で機能します。これはgradleベータ版のバグであり、すでにgoogleに報告されています。

0
juanpaternina

次のステップでこの問題を解決しました

  • <project>/<module>/build/build/intermediates/exploded-aarを削除します
  • プロジェクトを再構築する
  • 展開されたaarにバージョンサポートライブラリが1つしかないことを確認します
0
Takao Sumitomo