Odczyt i Zapis pliku przez aplikacje

0

Witam,
napisałem dwie aplikacje na Androida które m.in. mają odczytywać i zapisywać z pliku obiekt klasy która zawiera jakieś tam dane. Niby wszystko ładnie pięknie dopóki aplikacje odczytują plik z obiektem zapisany przez siebie samą ale gdy przychodzi do odczytu pliku utworzonego przez jeden program przez drugi. To występuje błąd w momencie odczytu obiektu. Tworząc pierwszą aplikację stworzyłem klasy 3 klasy jedną odpowiedzialną za odczyt obiektu z pliku, drugą za zapis do tego pliku obiektu oraz 3 klasę zapisywanego obiektu po czym tworząc drugi program skopiowałem do niego te 3 klasy.

03-31 16:48:26.560  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ java.lang.ClassNotFoundException: lalo.androidapps1.arcsettings.arcsettings.DataARC
03-31 16:48:26.579  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at java.lang.Class.classForName(Native Method)
03-31 16:48:26.579  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at java.lang.Class.forName(Class.java:251)
03-31 16:48:26.579  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:2262)
03-31 16:48:26.579  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at java.io.ObjectInputStream.readNewClassDesc(ObjectInputStream.java:1638)
03-31 16:48:26.579  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:658)
03-31 16:48:26.583  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1781)
03-31 16:48:26.583  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:762)
03-31 16:48:26.583  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1981)
03-31 16:48:26.583  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1938)
03-31 16:48:26.583  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at lalo.androidapps1.androidapps1.app.LoadAndroidSerial.loadSerialFile(LoadAndroidSerial.java:32)
03-31 16:48:26.583  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at lalo.androidapps1.androidapps1.app.MainActivity$3.onClick(MainActivity.java:92)
03-31 16:48:26.587  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at android.view.View.performClick(View.java:4438)
03-31 16:48:26.587  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at android.view.View$PerformClick.run(View.java:18422)
03-31 16:48:26.587  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at android.os.Handler.handleCallback(Handler.java:733)
03-31 16:48:26.591  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:95)
03-31 16:48:26.591  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at android.os.Looper.loop(Looper.java:136)
03-31 16:48:26.591  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5050)
03-31 16:48:26.591  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at java.lang.reflect.Method.invokeNative(Native Method)
03-31 16:48:26.591  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:515)
03-31 16:48:26.591  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
03-31 16:48:26.595  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
03-31 16:48:26.599  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at dalvik.system.NativeStart.main(Native Method)
03-31 16:48:26.599  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ Caused by: java.lang.NoClassDefFoundError: lalo/androidapps1/arcsettings/arcsettings/DataARC
03-31 16:48:26.599  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ ... 22 more
03-31 16:48:26.599  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ Caused by: java.lang.ClassNotFoundException: Didn't find class "lalo.androidapps1.arcsettings.arcsettings.DataARC" on path: DexPathList[[zip file "/data/app/lalo.androidapps1.androidapps1.app-1.apk"],nativeLibraryDirectories=[/data/app-lib/lalo.androidapps1.androidapps1.app-1, /vendor/lib, /system/lib]]
03-31 16:48:26.603  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
03-31 16:48:26.603  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
03-31 16:48:26.603  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
03-31 16:48:26.607  29968-29968/lalo.androidapps1.androidapps1.app W/System.err﹕ ... 22 more
0

Jakbym miał strzelać to bym powiedział, że nie masz na classpath`ie takiej klaski: "lalo.androidapps1.arcsettings.arcsettings.DataARC"

0

@galleanv
Czyli w tym projekcie z tą drugą aplikacją klasę DataARC powinienem umieścić osobno w package lalo.androidapps1.arcsettings.arcsettings a nie w lalo.androidapps1.androidapps1.app. Bo inaczej się pakietem do którego należy i dlatego nie chce mi odczytywać, gdy ta druga aplikacja zapisze, dobrze rozumiem?

0

Zapisując obiekt jakiejś klasy i chcąc go odczytać w innej aplikacji musisz sprawić by ta druga aplikacja posiadała definicję tej klasy w classpath.

IMO, wydziel sobie do osobnego niewielkiego jara wszystkie klasy, które chcesz przenosić pomiędzy apkami. Następnie niech każda z apek ma tego jara jako swoją zależność. I tyle.

0

@Koziołek
Nie wiem czy dobrze robię ale stworzyłem w jednym z tych projektów nowy moduł(wybrałem java library wydaje mi się, że tworząc android library tworzy niepotrzebne pliki w moim przypadku) przeniosłem te 3 klasy. Jednak nie wiem co teraz zrobić. Jak dodać to do tych zależności tych aplikacji. Niby w tym projekcie w którym stworzyłem ten moduł mam w settings.gradle ten moduł zaimportowany ale nie mogę utworzyć obiektu żadnej z tych klas.

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