2015-10-26 11 views
6

Ich bin neu in Appdevelopment und versuche, das Thema meiner App in Android Studio 1.4.1 (neueste) auf Windows 10 x64 zu ändern, aber ich bekomme immer Ausnahmen, hier ist, was ich tue: (ja, ich jetzt gibt es bereits viele Fragen, aber ich konnte keine Antwort finden)Rendering Probleme beim Ändern des Designs

  1. Projekt starten (Name: TEST)
  2. für Telefon und Tablet (min SDK. API 15 Android 4.0. 3 IceCreamsSandwich)
  3. Wählen Sie leere Aktivität (Name: MainActivity)
  4. Gehen Sie zu activity_main.xml -> Design-Ansicht
  5. Wählen Sie Nexus 4; API 23; Holo Light/Holo Dark/Material Licht/Material Dunkel; (API und Telefon spielt keine Rolle => versucht, eine Menge)
  6. AUSNAHME:

Rendering Probleme

Die folgenden Klassen konnte nicht instanziiert werden:

  • android .support.design.widget.CoordinatorLayout
  • android.support.design.widget.AppBarLayout

Tipps: [...]

Ausnahmedetails

java.lang.IllegalArgumentException: Sie benötigen ein Theme.AppCompat Thema (oder Nachkommen) mit der Design-Bibliothek verwenden . bei android.support.design.widget.ThemeUtils.checkAppCompatTheme (ThemeUtils.java:34) bei android.support.design.widget.CoordinatorLayout. (CoordinatorLayout.java:178) bei android.support.design.widget.CoordinatorLayout . (CoordinatorLayout.java:172) bei sun.reflect.NativeConstructorAccessorImpl.newInstance0 (native Methode) bei sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62) bei sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java : 45) bei java.lang.reflect.Constructor.newInstance (Constructor.java:422) bei org.jetbrains.android.uipreview.ViewLoader.createNewInstance (ViewLoader.java:458) bei org.jetbrains.android.uipreview .ViewLoader.loadClass (ViewLoader.java:170) bei org.jetbrains.android.uipreview.ViewLoader.loadView (ViewLoader.java:103) bei com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView (LayoutlibCallbackImpl.java : 190) bei android.view.BridgeInflater.loadCustomView (BridgeInflater.java:218) bei android.view.BridgeInflater.createViewFromTag (BridgeInflater.java:145) bei android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:704) bei android.view.LayoutInflater.inflate (LayoutInflater.java:492) bei android.view.LayoutInflater.inflate (LayoutInflater.java:394) bei com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate (RenderSessionImpl .java: 223) bei com.android.layoutlib.bridge.Bridge.createSe ssion (Bridge.java:426) bei com.android.ide.common.rendering.LayoutLibrary.createSession (LayoutLibrary.java:350) bei com.android.tools.idea.rendering.RenderTask $ 2.compute (RenderTask.java:510) bei com.android.tools.idea.rendering.RenderTask $ 2.compute (RenderTask. Java: 498) bei com.intellij.openapi.application.impl.ApplicationImpl.runReadAction (ApplicationImpl.java:888) bei com.android.tools.idea.rendering.RenderTask.createRenderSession (RenderTask.java:498) um com.android.tools.idea.rendering.RenderTask.access $ 600 (RenderTask.java:72) bei com.android.tools.idea.rendering.RenderTask $ 3.call (RenderTask.java:610) bei com.android. tools.idea.rendering.RenderTask $ 3.call (RenderTask.java:607) bei com.android.tools.idea.rendering.RenderService.runRenderAction (RenderService.java:366) bei com .android.tools.idea.rendering.RenderTask.render (RenderTask.java:607) bei com.android.tools.idea.rendering.RenderTask.render (RenderTask.java:629) bei com.intellij.android.designer .designSurface.AndroidDesignerEditorPanel $ 6.run (AndroidDesignerEditorPanel.java:480) bei com.intellij.util.ui.update.MergingUpdateQueue.execute (MergingUpdateQueue.java:320) bei com.intellij.util.ui.update.MergingUpdateQueue. Führen Sie (MergingUpdateQueue.java:310) unter com.intellij.util.ui.update.MergingUpdateQueue $ 2.run (MergingUpdateQueue.java:254) unter com.intellij.util.ui.update.MergingUpdateQueue.flush (MergingUpdateQueue.java : 269) unter com.intellij.util.ui.update.MergingUpdateQueue.flush (MergingUpdateQueue.java:227) unter com.intellij.util.ui.update.MergingUpdateQu eue.run (MergingUpdateQueue.java:217) unter com.intellij.util.concurrency.QueueProcessor.runSafely (QueueProcessor.java:238) unter com.intellij.util.Alarm $ Anfrage $ 1.run (Alarm.java:351) bei java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511) bei java.util.concurrent.FutureTask.run (FutureTask.java:266) bei java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) bei java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) bei java.lang.Thread.run (Thread.java:745)

AndroidManifest.xml: (FERTIGE)

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

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

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

</manifest> 

MainActivity.java: (FERTIGE)

package de.minding.test; 

import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 
import android.view.Menu; 
import android.view.MenuItem; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
         .setAction("Action", null).show(); 
      } 
     }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 

activity_main.xml: (FERTIGE)

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    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" android:fitsSystemWindows="true" 
    tools:context=".MainActivity"> 

    <android.support.design.widget.AppBarLayout android:layout_height="wrap_content" 
     android:layout_width="match_parent" android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar android:id="@+id/toolbar" 
      android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" /> 

    </android.support.design.widget.AppBarLayout> 

    <include layout="@layout/content_main" /> 

    <android.support.design.widget.FloatingActionButton android:id="@+id/fab" 
     android:layout_width="wrap_content" android:layout_height="wrap_content" 
     android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" 
     android:src="@android:drawable/ic_dialog_email" /> 

</android.support.design.widget.CoordinatorLayout> 

Was ist falsch ?? Ich benutze das vorgefertigte Zeug und es funktioniert nicht? -_- Nicht cool.

Bitte helfen!-Minding

+0

ersetzt bekommen die gleichen Fehler –

+0

Ja, ich habe Google gesucht und es gab unglaublich viele dieser zerreißend Probleme. Irgendwie traurig. _-Minding_ – Minding

Antwort

3

Versuchen höhere Mindest SDK für das Projekt (Lollipop oder Eibisch) Auswahl

Wenn Sie wirklich älter Minimum benötigen, versuchen Sie überhaupt das Projekt mit einer leeren Aktivität oder keine Aktivität zu schaffen und von dort aus zu starten .

+0

Ich kann das Thema ändern, wenn ich eine leere Aktivität verwende, ohne Fehler zu bekommen, aber (wie) kann ich ein Überlaufmenü damit verwenden? Wenn ich Lollipop benutze, programmiere ich nur für weniger als 10% aller Android-Nutzer, oder? Ich möchte ein High haben (API 15: 94%). - _Minding_ – Minding

+1

Lollipop von 1% im Januar ist jetzt mit Marshmallow bei 26%. Es wird wachsen, also müssen Sie überlegen, ob das den Aufwand wert ist. – taurelas

+0

Eigentlich sollte das Erstellen des Projekts für Lollipop das Rendering-Problem für Projekte mit niedrigeren SDKs beheben. – taurelas

0

Try

android:theme="@style/AppTheme.AppBarOverlay" 

mit

android:theme="@style/Theme.AppCompat.Light" 

innen CoordinatorLayout

Verwandte Themen