我刚刚开始学习Kotlin进行Android开发,并开始了一个空项目并添加了一个活动。我已经在Kotlin文档中添加了所需的gradle依赖项。默认情况下,MainActivity的xml文件仅包含TextView。但是当我尝试在布局编辑器中预览xml时,它会显示一个"渲染错误"
Render problem
Failed to load AppCompat ActionBar with unknown error.
我也得到了这个
The following classes could not be instantiated:
- android.support.v7.widget.AppCompatImageView (Open Class, Show Exception, Clear Cache)
- android.support.v7.widget.ActionBarContainer (Open Class, Show Exception, Clear Cache)
- android.support.v7.widget.Toolbar (Open Class, Show Exception, Clear Cache)
- android.support.v7.widget.AppCompatTextView (Open Class, Show Exception, Clear Cache)
- android.support.v7.widget.ActionBarContextView (Open Class, Show Exception, Clear Cache)
- android.support.v7.app.WindowDecorActionBar (Open Class, Show Exception, Clear Cache)
- android.support.v7.widget.ActionBarOverlayLayout (Open Class, Show Exception, Clear Cache)
Exception Details java.lang.ClassNotFoundException: android.support.v4.view.TintableBackgroundView
我尝试过手动重建项目和刷新布局。但似乎没有任何效果。
那我该怎么办?我使用Android Studio 3.0 Canary 2和Kotlin
编辑:
我取得了一些进展。我发现我的AppCompat主题都没有用。
答案 0 :(得分:92)
此解决方案可能对您有所帮助。 修改style.xml:
Items
为:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
答案 1 :(得分:17)
我也有这个问题,解决方法如下:将appcompat-v7:26.0.0-beta2
build.gradle
modle:app
上的appcompat-v7:26.0.0-beta1
修改为$stateParams
。
答案 2 :(得分:12)
多德 我使用Android Studio 3.0也遇到同样的问题, 我得到了一个解决方案,只需在res文件夹下的样式文件中进行一些更改。
这是......
<!-- Base application theme. -->
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
我添加了&#34; Base。&#34;在父母中使其正常工作!
答案 3 :(得分:6)
错误是:
implementation 'com.android.support:appcompat-v7:26.0.0-beta2'
改变:
implementation 'com.android.support:appcompat-v7:26.0.0-beta1'
答案 4 :(得分:4)
我的支持库版本25.4.0存在问题。我回到了版本25.3.1,布局渲染工作。
答案 5 :(得分:3)
我正在研究的环境:
Android Studio 3.0.1
发现原因在app/build.gradle
文件中:
apply plugin: 'com.android.application'
android {
compileSdkVersion 24 -----> 1
buildToolsVersion "24.0.0" -----> 2
defaultConfig {
applicationId "com.example.some_project"
minSdkVersion 15
targetSdkVersion 24 -----> 3
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:24.0.0' -----> 4
}
我将相应的几行更改如下:
compileSdkVersion 26 <------------ 1
buildToolsVersion "26.0.3" <------------ 2
targetSdkVersion 26 <------------ 3
compile 'com.android.support:appcompat-v7:26.1.0' <---- 4
我不需要更改styles.xml
文件中的任何内容。上面的大多数答案都建议更改以下行:
<style name="AppTheme" parent="Theme.AppCompat.Light">
分为以下内容:
<style name="AppTheme" parent="Base.Theme.AppCompat.Light">
但是我不想这样做。看起来,当Google Android升级了API后,他们已经将Theme(s)
API从Base
包移到了更根的包中。
答案 6 :(得分:2)
我通过将gradle插件版本升级到3.0.0-alpha2并使用gradle wrapper gradle-4.0-milestone-1-all.zip解决了这个问题。
我在android studio问题跟踪器中记录了这个问题 - https://issuetracker.google.com/u/1/issues/62251892
答案 7 :(得分:2)
如果以上都不起作用,请尝试以下方法:
This回答很可能会解决问题。
答案 8 :(得分:1)
好吧,检查你的gradle,你有没有添加支持:app / build.gradle文件中的appcompat依赖?还有appcompat:设计依赖
答案 9 :(得分:1)
当我尝试自动填充时,我遇到了同样的问题。但 这对我有用。确保添加这些依赖项:
compile "com.android.support:support-core-utils:26.0.0-beta2"
compile "com.android.support:support-v4:26.0.0-beta2"
compile "com.android.support:support-v13:26.0.0-beta2"
compile "com.android.support:appcompat-v7:26.0.0-beta2"
compile 'com.android.support:design:26.0.0-beta2'
和
classpath 'com.android.tools.build:gradle:2.3.3'
答案 10 :(得分:1)
我通过将支持设计版本更改为相同的appcompat版本来解决此问题。这是我的样本依赖项
dependencies {
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
}
以前我用过
compile 'com.android.support:design:25.4.0
&#39;