Wątek przeniesiony 2018-05-28 18:03 z Java przez aurel.

Zapis danych do pliku – aplikacja wywala się

0

Cześć i czołem !
Zaczynam przygodę z Javą, ale już na starcie mam dziwny problem a w zasadzie pytanie
Mam oto takie kod

package com.example.user.myapplication;

import java.io.FileNotFoundException;
import java.io.PrintWriter;

public class MainActivity{
    public static void main(String[] args) throws FileNotFoundException{
        PrintWriter zapis = new PrintWriter("ala.txt");
        zapis.println("Ala ma kota, a kot ma Alę");
        zapis.close();
    }
}

Według poradnika, do pliku ala.txt powinno zapisać tekst "Ala ma kota, a kot ma Alę"
Jednak aplikacja się wywala.

Pytanie, czy plik ala.txt musi być wcześniej utworzony ?
Jeżeli tak to gdzie go dodać ?
Dodałem w folderze tego programu, ale też wywala

1

Jednak aplikacja się wywala.

Szczegóły mamy sobie wywróżyć czy podasz nam stacktrace i wiadomość z rzucanego wyjątku?

0
completed successfully	6s 131ms
Run build	5s 397ms
Load build	6ms
Configure build	1s 675ms
Calculate task graph	53ms
Run tasks	3s 568ms

Wszystko się kompiluje

05/28 19:35:06: Launching app
No apk changes detected since last installation, skipping installation of C:\Users\user\AndroidStudioProjects\MyApplication\app\build\outputs\apk\debug\app-debug.apk
$ adb shell am force-stop com.example.user.myapplication
$ adb shell am start -n "com.example.user.myapplication/com.example.user.myapplication.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Waiting for application to come online: com.example.user.myapplication.test | com.example.user.myapplication
Connecting to com.example.user.myapplication
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
I/System.out: Sending WAIT chunk
W/ActivityThread: Application com.example.user.myapplication is waiting for the debugger on port 8100...
I/dalvikvm: Debugger is active
I/System.out: Debugger has connected
              waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
Connected to the target VM, address: 'localhost:8647', transport: 'socket'
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: debugger has settled (1493)
D/AndroidRuntime: Shutting down VM
W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x9cd45b20)
E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.user.myapplication, PID: 2525
                  java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.user.myapplication/com.example.user.myapplication.MainActivity}: java.lang.ClassCastException: com.example.user.myapplication.MainActivity cannot be cast to android.app.Activity
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
                      at android.app.ActivityThread.access$800(ActivityThread.java:135)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
                      at android.os.Handler.dispatchMessage(Handler.java:102)
                      at android.os.Looper.loop(Looper.java:136)
                      at android.app.ActivityThread.main(ActivityThread.java:5017)
                      at java.lang.reflect.Method.invokeNative(Native Method)
                      at java.lang.reflect.Method.invoke(Method.java:515)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
                      at dalvik.system.NativeStart.main(Native Method)
                   Caused by: java.lang.ClassCastException: com.example.user.myapplication.MainActivity cannot be cast to android.app.Activity
                      at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
                      at android.app.ActivityThread.access$800(ActivityThread.java:135) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:136) 
                      at android.app.ActivityThread.main(ActivityThread.java:5017) 
                      at java.lang.reflect.Method.invokeNative(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:515) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
                      at dalvik.system.NativeStart.main(Native Method) 
Disconnected from the target VM, address: 'localhost:8647', transport: 'socket'
05/28 19:52:49: Launching app
$ adb push C:\Users\user\AndroidStudioProjects\MyApplication\app\build\outputs\apk\debug\app-debug.apk /data/local/tmp/com.example.user.myapplication
$ adb shell pm install -t -r "/data/local/tmp/com.example.user.myapplication"
WARNING: linker: libdvm.so has text relocations. This is wasting memory and is a security risk. Please fix.
	pkg: /data/local/tmp/com.example.user.myapplication
Success


$ adb shell am start -n "com.example.user.myapplication/com.example.user.myapplication.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Client not ready yet..Waiting for process to come online
Connected to process 2161 on device emulator-5554

O to chodzi ?
Tak jak mówie jestem początkujący

0

Plikt tekstowy nie musi być wcześniej utworzony, jeśli PrinterWriter nie znajdzie pliku tekstowego, sam go utworzy. Problem może leżeć w tym, że do kompilacji programu nie używasz java jdk. Tylko jakieś jdk dla androida o ile dobrze rozumiem. Także ustaw tak by program był kompilowany przez Java JDK i powinno pomóc :)

0

A gdzie to można zrobić ?

0

Zacząłbym od zmiany IDE, jeśli chcesz pisać w Java SE, na np: eclipse, netbeans lub intellij, a jak nie wiesz jak zmienić/ dodać kompilator dla danego środowiska odsyłam do " google "

0
sele11 napisał(a):

Zacząłbym od zmiany IDE, jeśli chcesz pisać w Java SE, na np: eclipse, netbeans lub intellij, a jak nie wiesz jak zmienić/ dodać kompilator dla danego środowiska odsyłam do " google "

No ok będę szukał.
Dzięki, ale chce sprobowac w android studio :P

0
sele11 napisał(a):

Zacząłbym od zmiany IDE, jeśli chcesz pisać w Java SE, na np: eclipse, netbeans lub intellij, a jak nie wiesz jak zmienić/ dodać kompilator dla danego środowiska odsyłam do " google "

A czy kompilator to jedyne rozwiązanie ?
Bo pierwszy program mi działal

0

Odpaliłem inny program też działa a kod jest trudny.. nawet nie wiem co tam jest :P
Ale działa

0

Caused by: java.lang.ClassCastException: com.example.user.myapplication.MainActivity cannot be cast to android.app.Activity

W projekcie z klasą którą podałeś na początku jest chyba znacznie więcej kodu. Skąd się wzięła klasa com.example.user.myapplication.MainActivity ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1