2017-03-27 2 views
-4

Ich habe gerade eine Android-Entwicklungsklasse in der Schule gestartet und frage mich, warum mein Code nicht funktioniert? Jede Hilfe würde sehr geschätzt werden. Ich erstelle eine Tip Tracker-App, mit der ich meine Tipps bei der Lieferung von Pizzas im Auge behalten kann. Ich weiß, dass eine ähnliche App erstellt wurde, aber ich möchte meine eigene erstellen, und es ist auch mein Abschlussprojekt für das Semester. Im Moment versuche ich nur zwischen den Fenstern zu navigieren, um sicherzustellen, dass ich alles miteinander verknüpfen kann, bevor ich auf der Benutzeroberfläche zu verrückt gehe. Ich sehe nicht, wo ich eigentlich ein Problem habe, aber ich bekomme den Fehler "Leider funktioniert [app] nicht mehr", wenn ich auf dem Hauptbildschirm auf "Lieferung" klicke. Also erscheint mein zweites Fenster nie wirklich. Außerdem ist meine App manchmal sehr langsam und reagiert nicht. Danke an alle, die helfen können. Mein Code ist wie folgt:Android-Anwendung. App funktioniert sehr langsam und verursacht einen Fehler

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="0dip" 
    android:layout_weight="1" 
    android:gravity="center|bottom" 
    android:orientation="vertical"> 

    <Button 
     android:layout_width="155dp" 
     android:layout_height="60dp" 
     android:layout_gravity="center_horizontal|center" 
     android:layout_marginBottom="10dp" 
     android:background="@drawable/button_bg" 
     android:text="Delivery" 
     android:id="@+id/deliveryButton" /> 

    <Button 
     android:layout_width="155dp" 
     android:layout_height="60dp" 
     android:layout_gravity="center_horizontal|center" 
     android:layout_marginBottom="10dp" 
     android:background="@drawable/button_bg" 
     android:text="LOG" 
     android:id="@+id/logButton" /> 

    <Button 
     android:layout_width="155dp" 
     android:layout_height="60dp" 
     android:layout_gravity="center_horizontal|center" 
     android:layout_marginBottom="10dp" 
     android:background="@drawable/button_bg" 
     android:text="MAPS" 
     android:id="@+id/mapsButton" /> 

Der Code für meine Haupt-Java-Datei ist:

public class MainActivity extends AppCompatActivity { 

private Button launchDeliveryActivity; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    launchDeliveryActivity = (Button) findViewById(R.id.deliveryButton); 

    launchDeliveryActivity.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View view) 
     { 
      launchActivity(); 
     } 
    }); 
} 

private void launchActivity() 
{ 
    Intent intent = new Intent(this, orderDetailsActivity.class); 
    startActivity(intent); 
} 

Und mein zweites Fenster ist etwas, das ich schnell zusammen sicher, warf machen ich von der zu navigieren wäre in der Lage Home-Bildschirm zum zweiten Fenster und zurück:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/order_details" 
    android:orientation="vertical"> 

    <Button 
     android:layout_width="120dp" 
     android:layout_height="60dp" 
     android:text="Home" 
     android:id="@+id/homeScreenButton" /> 
</LinearLayout> 

und schließlich meine zweite Java-Datei:

.210

Protokolle sind:

1:29 AM Ausführen von Aufgaben: [: App: assembleDebug]

1:29 AM Gradle in 1s 781ms

1:31 AM Ausführen von Aufgaben fertig bauen: [ : App: assembleDebug]

1:31 aM Gradle in 7s 15ms

1:31 aM Instant-Run ausgeführt, um eine vollständige Erstellung und installieren, da die Installation auf dem Gerät nicht t fertig bauen überein Der lokale Build auf der Festplatte. (Sie zeigen wieder nicht)

1:40 AM Ausführen von Aufgaben: [: App: assembleDebug]

1:40 AM Gradle in 1s 203ms

1:43 AM Ausführen von Aufgaben fertig bauen: [ : App: assembleDebug]

01.43 Gradle in 983ms

EDIT fertig bauen: Die Logcat ist:

03-27 03:37:59.550 31525-31525/com.example.boley.personaldeliveryassistant E/AndroidRuntime: FATAL EXCEPTION: main 
                         Process: com.example.boley.personaldeliveryassistant, PID: 31525 
                         java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.boley.personaldeliveryassistant/com.example.boley.personaldeliveryassistant.orderDetailsActivity}: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class <unknown> 
                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253) 
                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
                          at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
                          at android.os.Handler.dispatchMessage(Handler.java:102) 
                          at android.os.Looper.loop(Looper.java:158) 
                          at android.app.ActivityThread.main(ActivityThread.java:7224) 
                          at java.lang.reflect.Method.invoke(Native Method) 
                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
                          Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class <unknown> 
                          at android.view.LayoutInflater.inflate(LayoutInflater.java:551) 
                          at android.view.LayoutInflater.inflate(LayoutInflater.java:429) 
                          at android.view.LayoutInflater.inflate(LayoutInflater.java:380) 
                          at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                          at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                          at com.example.boley.personaldeliveryassistant.orderDetailsActivity.onCreate(orderDetailsActivity.java:15) 
                          at android.app.Activity.performCreate(Activity.java:6876) 
                          at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135) 
                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206) 
                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)  
                          at android.app.ActivityThread.access$1100(ActivityThread.java:221)  
                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)  
                          at android.os.Handler.dispatchMessage(Handler.java:102)  
                          at android.os.Looper.loop(Looper.java:158)  
                          at android.app.ActivityThread.main(ActivityThread.java:7224)  
                          at java.lang.reflect.Method.invoke(Native Method)  
                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)  
                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)  
                          Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown> 
                          at android.view.LayoutInflater.createView(LayoutInflater.java:657) 
                          at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58) 
                          at android.view.LayoutInflater.onCreateView(LayoutInflater.java:706) 
                          at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:774) 
                          at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716) 
                          at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
                          at android.view.LayoutInflater.inflate(LayoutInflater.java:429)  
                          at android.view.LayoutInflater.inflate(LayoutInflater.java:380)  
                          at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)  
                          at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
                          at com.example.boley.personaldeliveryassistant.orderDetailsActivity.onCreate(orderDetailsActivity.java:15)  
                          at android.app.Activity.performCreate(Activity.java:6876)  
                          at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)  
                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206)  
                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)  
                          at android.app.ActivityThread.access$1100(ActivityThread.java:221)  
                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)  
                          at android.os.Handler.dispatchMessage(Handler.java:102)  
                          at android.os.Looper.loop(Looper.java:158)  
                          at android.app.ActivityThread.main(ActivityThread.java:7224)  
                          at java.lang.reflect.Method.invoke(Native Method)  
                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)  
                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)  
                          Caused by: java.lang.reflect.InvocationTargetException 
                          at java.lang.reflect.Constructor.newInstance(Native Method) 
                          at android.view.LayoutInflater.createView(LayoutInflater.java:631) 
                          at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)  
                          at android.view.LayoutInflater.onCreateView(LayoutInflater.java:706)  
                          at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:774)  
                          at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)  
                          at android.view.LayoutInflater.inflate(LayoutInflater.java:498)  
                          at android.view.LayoutInflater.inflate(LayoutInflater.java:429)  
                          at android.view.LayoutInflater.inflate(LayoutInflater.java:380)  
                          at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)  
                          at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
                          at com.example.boley.personaldeliveryassistant.orderDetailsActivity.onCreate(orderDetailsActivity.java:15)  
                          at android.app.Activity.performCreate(Activity.java:6876)  
                          at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)  
                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206)  
                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)  
                          at android.app.ActivityThread.access$1100(ActivityThread.java:221)  
                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)  
                          at android.os.Handler.dispatchMessage(Handler.java:102)  
                          at android.os.Looper.loop(Looper.java:158)  
                          at android.app.ActivityThread.main(ActivityThread.java:7224)  
                          at java.lang.reflect.Method.invoke(Native Method)  
                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)  
                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)  
                          Caused by: java.lang.OutOfMemoryError: Failed to allocate a 207355916 byte allocation with 16773008 free bytes and 53MB until OOM 
                          at dalvik.system.VMRuntime.newNonMovableArray(Native Method) 
                          at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
                          at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:856) 
                          at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:675) 
                          at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:2228) 
                          at android.content.res.Resources.loadDrawableForCookie(Resources.java:4215) 
                          at android.content.res.Resources.loadDrawable(Resources.java:4089) 
                          at android.content.res.Resources.loadDrawable(Resources.java:3939) 
                          at android.content.res.TypedArray.getDrawable(TypedArray.java:886) 
                          at android.view.View.<init>(View.java:4230) 
                          at android.view.ViewGroup.<init>(ViewGroup.java:589) 
                          at android.widget.LinearLayout.<init>(LinearLayout.java:202) 
                          at android.widget.LinearLayout.<init>(LinearLayout.java:198) 
                          at android.widget.LinearLayout.<init>(LinearLayout.java:194) 
                          at java.lang.reflect.Constructor.newInstance(Native Method)  
                          at android.view.LayoutInflater.createView(LayoutInflater.java:631)  
                          at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)  
                          at android.view.LayoutInflater.onCreateView(LayoutInflater.java:706)  
                          at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:774)  
                          at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)  
                          at android.view.LayoutInflater.inflate(LayoutInflater.java:498)  
                          at android.view.LayoutInflater.inflate(LayoutInflater.java:429)  
                          at android.view.LayoutInflater.inflate(LayoutInflater.java:380)  
                          at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)  
                          at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
                          at com.example.boley.personaldeliveryassistant.orderDetailsActivity.onCreate(orderDetailsActivity.java:15)  
                          at android.app.Activity.performCreate(Activity.java:6876)  
                          at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)  
                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206)  
                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)  
                          at android.app.ActivityThread.access$1100(ActivityThread.java:221)  
                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)  
                          at android.os.Handler.dispatchMessage(Handler.java:102)  
                          at android.os.Looper.loop(Looper.java:158)  
                          at android.app.ActivityThread.main(ActivityThread.java:7224)  
                          at java.lang.reflect.Method.invoke(Native Method)  
                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)  
                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)   
+1

Bitte Logs hinzufügen –

+0

Bitte fügen Sie den Fehler hinzu !! – BinaryMan

+0

Ich erhalte keine Fehler in Android Studio, nur wenn ich die Anwendung auf meinem Telefon oder auf dem Emulator ausführe. Die App lädt sich sehr langsam, und wenn ich auf den "Delivery" -Button klicke, der mich zum zweiten Fenster bringt, heißt es "Leider wurde der Personal Delivery Assistant gestoppt." Das zweite Fenster wird niemals angezeigt. –

Antwort

0

Verdächtiger von ANR ist zeichnend "order_details". Da es in Ihrer zweiten Aktivität keine andere Komponente gibt. Bitte überprüfen Sie die Größe der ziehbaren "order_details". Wenn es riesig ist, könnte dies der Grund für ANR sein. Versuchen Sie, indem Sie das Zeichen ändern oder entfernen.

Bitte überprüfen Sie Protokolle des Geräts, es wird "I_am ANR" -Tag haben. Möglicherweise gibt es einige Informationen in Protokollen für anr.

+0

Anscheinend sind beide Bilder, die ich für meine Hintergründe verwendet habe, zu groß. Ich habe Ihren Ratschlag ergriffen und die Zeichen aus meinen XML-Dateien gelöscht, so dass die Fenster nur ein graues Grau mit Schaltflächen auf ihnen waren. Jetzt funktioniert es einwandfrei zwischen den Fenstern zu navigieren. Danke, für die schnelle Antwort! Es ist einfach scheiße, ich habe viel Zeit damit verbracht, Photoshop zu erstellen. Ich habe die Größe der Bilder nicht geändert, weil ich wollte, dass sie für verschiedene Bildschirmgrößen skaliert wurde. Dadurch wurden die Bilder größer als benötigt. Gibt es eine Möglichkeit, die Bilder weiterhin zu verwenden, wenn ich sie beschneide oder ihre Größe ändere? –

+0

Ja, Sie können sie verwenden, indem Sie die Größe des Bildes durch Zuschneiden oder Ändern der Größe reduzieren. Versuchen Sie, die Größe des Bildes in KB zu belassen. Wenn Sie es entsprechend der Größe des Geräts skalieren möchten, kann dies programmgesteuert erfolgen. Überprüfen Sie den folgenden Link: https://developer.android.com/topic/performance/graphics/load-bitmap.html – Sonam

0

Ich denke, Fehler werden verursacht durch: java.lang.OutOfMemoryError: Konnte eine 207355916 Byte-Zuweisung nicht mit 16773008 freien Bytes und 53MB zuordnen, die im Protokoll anzeigen, so entfernen Sie zunächst Bild von order_details Linearlayout und überprüfen, und wenn Sie dieses Bild verwenden möchten dann Größe reduzieren und Laufzeit einstellen check this

+0

Android Studio schien es für mich automatisch getan haben. –