2017-03-12 64 views
0

我正在學習如何使用Android Studio 2.3編寫Android應用程序。似乎比做java更難100倍。我想將三個EditText的字符串寫入一個.txt文件。我知道我的變量被命名爲非常糟糕。該應用程序經常運行沒有崩潰後添加一些行,只是爲了檢查是否有新的按鈕,因爲我在碰撞後如此可疑,雖然我收回了我最後的變化。在每次不成功的簡單更改之後,都不能成爲複製Android Studio項目的解決方案。簡易應用程序在重新構建後仍然崩潰

package com.example.markus.myapplication3; 

import android.app.Activity; 
import android.os.Bundle; 
import android.os.Environment; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.text.ParseException; 
import java.util.ArrayList; 

public class ArtHin extends Activity { 
    Button ok; 
    EditText editText; 
    EditText editText2; 
    EditText editText3; 
    public String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/test"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_art_hin); 
     ok = (Button) findViewById(R.id.button3); 
     editText = (EditText) findViewById(R.id.editText); 
     editText2 = (EditText) findViewById(R.id.editText2); 
     editText3 = (EditText) findViewById(R.id.editText3); 
     File dir = new File(path); 
     dir.mkdirs(); 

     File file = new File(path + "/bestand.txt"); 
    } 

    public void buttonSave(View view){ 
     File file = new File(path + "/bestand.txt"); 
     String zeile = editText.getText().toString()+"@"+editText2.getText().toString()+">"+editText3.getText().toString(); 
     String [] transfer = zeile.split(""); 
     editText.setText(""); 
     editText2.setText(""); 
     editText3.setText(""); 
     Save (file, transfer); 
} 

public static void Save(File file, String[] data) 
{ 
    FileOutputStream fos = null; 
    try 
    { 
     fos = new FileOutputStream(file); 
    } 
    catch (FileNotFoundException e) {e.printStackTrace();} 
    try 
    { 
     try 
     { 
      for (int i = 0; i<data.length; i++) 
      { 
       fos.write(data[i].getBytes()); 
       if (i < data.length-1) 
       { 
        fos.write("\n".getBytes()); 
       } 
      } 
     } 
     catch (IOException e) {e.printStackTrace();} 
    } 
    finally 
    { 
     try 
     { 
      fos.close(); 
     } 
     catch (IOException e) {e.printStackTrace();} 
    } 
} 
} 

錯誤:

03-12 17:26:20.470 2306-2306/com.example.markus.myapplication2 E/AndroidRuntime: FATAL EXCEPTION: main 
                       java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.markus.myapplication2/com.example.markus.myapplication.MainActivity2}: java.lang.ClassNotFoundException: Didn't find class "com.example.markus.myapplication.MainActivity2" on path: /data/app/com.example.markus.myapplication2-1.apk 
                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106) 
                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
                        at android.app.ActivityThread.access$600(ActivityThread.java:141) 
                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
                        at android.os.Handler.dispatchMessage(Handler.java:99) 
                        at android.os.Looper.loop(Looper.java:137) 
                        at android.app.ActivityThread.main(ActivityThread.java:5041) 
                        at java.lang.reflect.Method.invokeNative(Native Method) 
                        at java.lang.reflect.Method.invoke(Method.java:511) 
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
                        at dalvik.system.NativeStart.main(Native Method) 
                        Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.markus.myapplication.MainActivity2" on path: /data/app/com.example.markus.myapplication2-1.apk 
                        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65) 
                        at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
                        at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
                        at android.app.Instrumentation.newActivity(Instrumentation.java:1054) 
                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097) 
                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)  
                        at android.app.ActivityThread.access$600(ActivityThread.java:141)  
                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)  
                        at android.os.Handler.dispatchMessage(Handler.java:99)  
                        at android.os.Looper.loop(Looper.java:137)  
                        at android.app.ActivityThread.main(ActivityThread.java:5041)  
                        at java.lang.reflect.Method.invokeNative(Native Method)  
                        at java.lang.reflect.Method.invoke(Method.java:511)  
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)  
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)  
                        at dalvik.system.NativeStart.main(Native Method)  
+0

需要包含您的崩潰日誌! – Booger

回答

0

ClassNotFoundException: Didn't find class "com.example.markus.myapplication.MainActivity2" on path

這不是您顯示的類的名稱。

public class ArtHin extends Activity 

打開AndroidManifest.xml並確保您的類實際上是正確的。

+0

這是您打開應用程序時的活動。通過點擊一個按鈕即可進入ArtHin。如果這是第三個副本的錯誤,我不會感到驚訝。 –

+0

根據你的錯誤,你的錯誤是當你嘗試創建一個'MainActivity2',並且不存在時。我在說'ArtHin'本身有什麼問題 –

+1

MainActivity2是我第三個版本的名字。不知道爲什麼AS使用該版本運行。現在,APK已成功生成,但這並不表示應用不會崩潰。很難愛上android編程:D編輯:你真的很快。偉大的社區。 –

0

剛剛從設置禁止在你的Android工作室即時運行。並嘗試重建您的應用程序。 Android studio 2.3在即時運行時遇到了一些問題。

禁用即時運行:

文件>設置>構建,執行,部署>即時運行和取消選中啓用即時運行。

我在更新android studio後面臨同樣的問題。

+0

現在我收到此消息: IllegalStateException:由於ConnectorServiceRegistry已關閉,無法找到DefaultGradleConnector類型的對象的工廠。 我確信這裏有一個答案 –