Ich lerne Android und folgte dem Tutorial in Wingnity. Ich benutze Android Studio 2.1.3.Fehler: Leider App gestoppt
Ich habe 2 Java-Klassen (MainActivity und SimpleFragmentActivity) und 3 Layout (activity_main, activity_simple_fragment und Fragment einfach (leer)).
Ich bin nicht sicher, was mit meinem Code falsch ist. Versucht, nach der Lösung zu suchen, aber der Code scheint korrekt zu sein.
MainActivity
package com.example.ramosva.sunshine;
import android.app.Fragment;
import android.content.Intent;
import android.support.v4.app.FragmentActivity;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.support.v4.app.DialogFragment;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
import java.lang.Object;
import java.util.Arrays;
public class MainActivity extends AppCompatActivity {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void simples(View v){
Intent intent = new Intent(getApplicationContext(), SimpleFragmentActivity.class);
startActivity(intent);
// startService(intent);
}
}
SimpleFragmentActivity
package com.example.ramosva.sunshine;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
/**
* A simple {@link Fragment} subclass.
*/
public class SimpleFragmentActivity extends AppCompatActivity {
public SimpleFragmentActivity() {
// Required empty public constructor
}
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_simple_fragment);
if(savedInstanceState == null){
getSupportFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit();
}
}
public static class PlaceholderFragment extends Fragment{
public PlaceholderFragment(){
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootview = inflater.inflate(R.layout.activity_simple_fragment, container, false);
Button btnClickMeGym = (Button)rootview.findViewById(R.id.btnSimpleFragGym);
btnClickMeGym.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), "You clicked me Gym", Toast.LENGTH_SHORT).show();
}
});
return rootview;
}
}
}
Layouts
activity_main
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
tools:context=".MainActivity"
tools:ignore="MergeRootFrame" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Simple Fragment"
android:id="@+id/btnSimpleFragmentMain"
android:layout_gravity="center_horizontal"
android:onClick="simples" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button2"
android:layout_gravity="center_horizontal" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button"
android:layout_gravity="center_horizontal" />
</LinearLayout>
activity_simple_fragment
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.ramosva.sunshine.SimpleFragmentActivity">
<!-- TODO: Update blank fragment layout -->
<!--<TextView-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"-->
<!--android:text="@string/hello_blank_fragment" />-->
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/imageView"
android:scaleType="centerCrop"
android:src="@drawable/carls" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click Me!"
android:id="@+id/btnSimpleFragGym"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="60dp" />
</RelativeLayout>
fragment_simple
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
Kann hier den Fehler hinweisen jemand bitte. Ich folgte nur dem Code, der in Wingnity Tutorial 1: Erstellen von Fragmenten verwendet wurde.
Error Log
01-01 23:27:10.865 27075-27075/com.example.ramosva.sunshine W/System: ClassLoader referenced unknown path: /data/app/com.example.ramosva.sunshine-1/lib/arm
01-01 23:27:11.005 27075-27075/com.example.ramosva.sunshine W/System: ClassLoader referenced unknown path: /data/app/com.example.ramosva.sunshine-1/lib/arm
01-01 23:27:11.150 27075-27075/com.example.ramosva.sunshine W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
01-01 23:27:11.295 27075-27075/com.example.ramosva.sunshine D/SecWifiDisplayUtil: Metadata value : none
01-01 23:27:11.300 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: #1 mView = com.android.internal.policy.PhoneWindow$DecorView{a7cb583 I.E...... R.....ID 0,0-0,0}
01-01 23:27:11.300 27075-27167/com.example.ramosva.sunshine D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
01-01 23:27:11.355 27075-27167/com.example.ramosva.sunshine D/libEGL: eglInitialize EGLDisplay = 0xae27f7c4
01-01 23:27:11.355 27075-27167/com.example.ramosva.sunshine I/OpenGLRenderer: Initialized EGL, version 1.4
01-01 23:27:11.360 27075-27167/com.example.ramosva.sunshine D/mali_winsys: new_window_surface returns 0x3000, [1440x2560]-format:1
01-01 23:27:11.410 27075-27075/com.example.ramosva.sunshine W/DisplayListCanvas: DisplayListCanvas is started on unbinded RenderNode (without mOwningView)
01-01 23:27:11.490 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: MSG_RESIZED_REPORT: ci=Rect(0, 96 - 0, 0) vi=Rect(0, 96 - 0, 0) or=1
01-01 23:27:11.515 27075-27075/com.example.ramosva.sunshine I/Timeline: Timeline: Activity_idle id: [email protected] time:10330371
01-01 23:27:13.795 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 0
01-01 23:27:13.880 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 1
01-01 23:27:14.585 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 0
01-01 23:27:14.700 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 1
01-01 23:27:14.940 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 0
01-01 23:27:15.020 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 1
01-01 23:27:15.105 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 0
01-01 23:27:15.205 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 1
01-01 23:27:15.345 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 0
01-01 23:27:15.435 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 1
01-01 23:27:15.645 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 0
01-01 23:27:15.735 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 1
01-01 23:27:16.050 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 0
01-01 23:27:16.155 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 1
01-01 23:27:16.440 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 0
01-01 23:27:16.510 27075-27075/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 1
01-01 23:27:16.515 27075-27075/com.example.ramosva.sunshine D/AndroidRuntime: Shutting down VM
01-01 23:27:16.520 27075-27075/com.example.ramosva.sunshine E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.ramosva.sunshine, PID: 27075
java.lang.IllegalStateException: Could not find method simples(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'btnSimpleFragmentMain'
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:327)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
at android.view.View.performClick(View.java:5697)
at android.widget.TextView.performClick(TextView.java:10826)
at android.view.View$PerformClick.run(View.java:22526)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7225)
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)
01-01 23:27:18.590 27075-27075/com.example.ramosva.sunshine I/Process: Sending signal. PID: 27075 SIG: 9
01-01 23:44:07.140 29325-29325/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 0
01-01 23:44:07.230 29325-29325/com.example.ramosva.sunshine D/ViewRootImpl: ViewPostImeInputStage processPointer 1
01-01 23:44:07.235 29325-29325/com.example.ramosva.sunshine D/AndroidRuntime: Shutting down VM
01-01 23:44:07.235 29325-29325/com.example.ramosva.sunshine E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.ramosva.sunshine, PID: 29325
java.lang.IllegalStateException: Could not find method simples(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'btnSimpleFragmentMain'
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:327)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
at android.view.View.performClick(View.java:5697)
at android.widget.TextView.performClick(TextView.java:10826)
at android.view.View$PerformClick.run(View.java:22526)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7225)
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)
Fügen Sie den Fehler (logcat) – Zoe
Welche Aktivitäten lade Sie zuerst? Wenn 'MainActivity', wie nennt man' Simple' darin? Was ist der Auslöser für den Absturz (sofort, nach einem Klick usw.)? Schließlich teilen Sie IMMER Fehlerprotokolle, wenn Sie nach Fehlern fragen. – Shaishav
Die Fehlerprotokolle wurden hinzugefügt. Entschuldigung dafür. –