「初めてのAndroid」という本(https://www.amazon.co.jp/初めてのAndroid-第4版-Ed-Burnette/dp/4873117496)を参考に、Android Studio上で、サンプルにあった「Tic Tac Toe」という三目並べゲームを作っています。
アプリをRunさせると、Gradleは、「BUILD SUCCESSFUL」となるのですが、
AVD上では、「Unfortunately,UT3 has stopped.」となってしまいます。
log cat のエラーは、一番下に載せていますが、この中で、
at org.example.tictactoe.MainActivity.onCreate(MainActivity.java:11)
とか、
java.lang.ClassNotFoundException: Didn't find class "org.example.tictactoe.MainFragment"
の部分が怪しいのではないかと思います。
コードを見てみると、下記のMainFragment.javaの中の「public class MainFragment ...」の部分でエラーが出ています。そこには、
「Missing package statement:'org.example.tictactoe'
Detects package statements that do not correspond to the project directory structure and reports classes without package statements.」と書いてありました。
java
1//MainFragment.java 2import android.os.Bundle; 3import android.support.v4.app.Fragment; 4import android.support.v7.app.AlertDialog; 5import android.view.LayoutInflater; 6import android.view.View; 7import android.view.ViewGroup; 8 9import org.example.tictactoe.R; 10 11public class MainFragment extends Fragment { //←MainFragmentの部分でエラーが出ています。 12 13 private AlertDialog mDialog; 14 15 @Override 16 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ 17 View rootView = inflater.inflate(R.layout.fragment_main, container, false); 18 View aboutButton = rootView.findViewById(R.id.about_button); 19 aboutButton.setOnClickListener(new View.OnClickListener(){ 20 @Override 21 public void onClick(View view){ 22 AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 23 builder.setTitle(R.string.about_title); 24 builder.setMessage(R.string.about_text); 25 builder.setCancelable(false); 26 builder.setPositiveButton(R.string.ok_label, null); 27 mDialog = builder.show(); 28 } 29 /* 30 @Override 31 public void onPause(){ 32 super.onPause(); 33 if (mDialog != null) 34 mDialog.dismiss(); 35 } 36 */ 37 }); 38 return rootView; 39 } 40} 41
そして、activity_main.xmlは、下記のコードですが、
「class="org.example.tictactoe.MainFragment"」のMainFragmentの部分で、
「Cannnot resolve symbol 'MainFragment'
Validate resources references inside Android XML files.」
というエラーが出ています。
xml
1<!--activity_main.xml--> 2<?xml version="1.0" encoding="utf-8"?> 3<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 android:clipChildren="false" 8 tools:context=".MainActivity"> 9 10 <fragment 11 android:id="@+id/main_fragment" 12 class="org.example.tictactoe.MainFragment" <!--←ここでエラーが出ています。--> 13 android:layout_width="wrap_content" 14 android:layout_height="wrap_content" 15 android:layout_gravity="center" 16 tools:layout="@layout/fragment_main" /> 17</FrameLayout> 18
おそらく、上記二点に問題があるのだと思うのですが、まだどうしたら良いか分からずにいます。
念のため、MainActivity.javaは、下記のとおりです。
java
1//MainActivity.java 2package org.example.tictactoe; 3 4import android.support.v7.app.AppCompatActivity; 5import android.os.Bundle; 6 7public class MainActivity extends AppCompatActivity { 8 9 @Override 10 protected void onCreate(Bundle savedInstanceState) { 11 super.onCreate(savedInstanceState); 12 setContentView(R.layout.activity_main); 13 } 14}
お分かりの方、ご教示頂ければ幸いです。
よろしくお願いいたします。
なお、log catに表示されたエラーは、下記のとおりでした。(10,000文字までしか掲載できないので、org.example.tictactoeに絡んだ所のみピックアップして載せてあります。)
07-31 08:44:17.581 2718-2718/org.example.tictactoe E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.example.tictactoe, PID: 2718 java.lang.RuntimeException: Unable to start activity ComponentInfo{org.example.tictactoe/org.example.tictactoe.MainActivity}: android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class fragment at org.example.tictactoe.MainActivity.onCreate(MainActivity.java:11) at org.example.tictactoe.MainActivity.onCreate(MainActivity.java:11) Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment org.example.tictactoe.MainFragment: make sure class name exists, is public, and has an empty constructor that is public at org.example.tictactoe.MainActivity.onCreate(MainActivity.java:11) Caused by: java.lang.ClassNotFoundException: Didn't find class "org.example.tictactoe.MainFragment" on path: DexPathList[[zip file "/data/app/org.example.tictactoe-2/base.apk"],nativeLibraryDirectories=[/data/app/org.example.tictactoe-2/lib/x86, /vendor/lib, /system/lib]] at org.example.tictactoe.MainActivity.onCreate(MainActivity.java:11) Suppressed: java.lang.ClassNotFoundException: Didn't find class "org.example.tictactoe.MainFragment" on path: DexPathList[[dex file "/data/data/org.example.tictactoe/files/instant-run/dex/slice-support-annotations-23.4.0_0d031f4d8f962a0ec1d140e2bf15815497962a73-classes.dex", dex file "/data/data/org.example.tictactoe/files/instant-run/dex/slice-slice_9-classes.dex", dex file "/data/data/org.example.tictactoe/files/instant-run/dex/slice-slice_8-classes.dex", dex file "/data/data/org.ex

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/07/31 09:56
2016/07/31 10:30
退会済みユーザー
2016/07/31 11:15