Android Studio 3.1.3,设计视图始终为空

时间:2018-06-19 13:24:49

标签: android android-layout android-studio

我是android开发的新手,我的Android Studio 3.1.3演示项目或我创建的任何项目都有此问题。

即使我可以在设计视图(ConstraintLayout)上拖放不同的控件,但是在设计视图上什么也没有显示,它会瞬间显示,然后消失。

我可以在activity_main.xml的“文本”选项卡,“组件树”中甚至在运行模式下看到拖放的所有元素,但在设计选项卡中却看不到,在设计视图中什么也没有显示,并且总是空白,甚至没有问候世界在上面。

我尝试了无效缓存重新启动,重新启动PC,更改缩放-放大和缩小,推断出约束条件,但是没有运气。控件

除非在设计视图中看到内容,否则我将无能为力。

空设计视图:

Empty Design View

运行模式视图

Run mode view

activity_main.xml

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

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:text="Button" />

    <android.support.constraint.Guideline
        android:id="@+id/guideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_begin="20dp" />

    <CheckBox
        android:id="@+id/checkBox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="CheckBox"
        tools:layout_editor_absoluteX="154dp"
        tools:layout_editor_absoluteY="181dp" />

</android.support.constraint.ConstraintLayout>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.libra.myapplication">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.libra.myapplication"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

7 个答案:

答案 0 :(得分:31)

好,我的问题解决了!

The following classes could not be instantiated: - android.support.v7.widget.Toolbar

我从此更改了res / values / styles.xml文件:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

对此:

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

这解决了问题

答案 1 :(得分:2)

另一种解决方法是编辑GradleScripts / build.gradel(模块应用程序)

->实现'com.android.support:appcompat-v7:28.0.0-alpha3' 导入实现'com.android.support:appcompat-v7:28.0.0-alpha1'

,如果存在的话

->实现'com.android.support:design:28.0.0-alpha3' 到实现'com.android.support:design:28.0.0-alpha1'

  • 保存和+ SyncNow

答案 2 :(得分:1)

我遇到了同样的问题,发现此hack对我有用。我已经将位于Gradle Scripts / build.gradle(Module:app)中的应用文件中的版本更改为版本27。CompileSdkVersionminSdkVersiontargetSdkVersionimplementation 'com.android.support:appcompat-v7:27.0.0'。这些列在第4、7、8和23行。(可能与您不同)。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.fiv4.masterapp"
        minSdkVersion 27
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

enter image description here

enter image description here

答案 3 :(得分:1)

对于那些在此页面或整个互联网上都无效的设备(就像我一样),请尝试卸载android studio,然后重新安装。 (您不必卸载sdks,avd。设置也可以保持不变。只是主程序需要卸载) 当您重新安装Android Studio时,如图中所示,将版本更改为27。就是这样,希望它也对您有用enter image description here

答案 4 :(得分:0)

您的布局中的CheckBox小部件存在问题。它没有任何限制。 tools:layout_editor_absoluteXtools:layout_editor_absoluteY仅对设计模式有效,而在实际运行的应用程序中无效。

注意:不要将小部件拖放到设计视图上,它会生成许多在所有情况下都无法使用的奇怪属性,例如您获得的两个属性。而是在代码中执行。如果您希望CheckBox位于中间,请执行以下操作:

<CheckBox
    android:id="@+id/checkBox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CheckBox"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintBottom_toBottomOf="parent" />

这将删除CheckBox处的错误图标,然后刷新可能会有帮助。

答案 5 :(得分:0)

使用稳定版本的支持库。

问题是当您使用不稳定的alpha支持库时。在google maven repo上查看稳定的库版本。

在回答时,support:appcomact-v7的最稳定版本是28.0.0-rc02

替换

implementation 'com.android.support:appcompat-v7:28.0.0-alpha3' // less stable alpha

使用

implementation 'com.android.support:appcompat-v7:28.0.0-rc02' // more stable

同步,只需重新启动AS。问题已解决!

答案 6 :(得分:-1)

转到res / values / styles.xml文件...

第4行,总是...

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

使用

对此进行更改
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">

无需保存文件,它将自动保存。转到activity_main.xml->设计(查看)...现在应该显示它。