My Activity extends from MapActivity, I have descried it correctly in the manifest, I have put the <uses-library> tag inside the <application> tag I am building with goole apis library and the maps.jar is there only one time(no duplicates) and the app runs and works perfect on most devices.
However I got a crash report with ClassDefNotFoundException which occurred on ZTE Blade device with Android 2.1. I am building with google apis 2.1
Does anyone have suggestions for that?
I am providing the stack trace too:
java.lang.IllegalStateException: Could not execute method of the activity
at android.view.View$1.onClick(View.java:2165)
at android.view.View.performClick(View.java:2506)
at android.view.View$PerformClick.run(View.java:9112)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3835)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at android.view.View$1.onClick(View.java:2160)
... 11 more
Caused by: java.lang.NoClassDefFoundError: com.testing.asd.android.ui.InfoActivity
at com.testing.asd.android.ui.HomeScreen.onClick(HomeScreen.java:60)
... 14 more
com.testing.asd.android.ui.InfoActivity extends MapActivity. The problem is only on one device so far. I tested it on Android 2.3 and 4.2 and it is ok there.
I'm not sure if this is the case with the ZTE Blade, but there are some devices (such as the Kindle Fire) that don't have the Google APIs. I think these phones will show a NoClassDefFoundError if your app uses MapView.
Related
when I try to do login in my android app occurs the following error:
java.lang.VerifyError: org/postgresql/jdbc/TimestampUtils
at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:279)
at org.postgresql.Driver.makeConnection(Driver.java:450)
at org.postgresql.Driver.connect(Driver.java:252)
at java.sql.DriverManager.getConnection(DriverManager.java:175)
at com.j256.ormlite.jdbc.JdbcConnectionSource.makeConnection(JdbcConnectionSource.java:266)
at com.j256.ormlite.jdbc.JdbcConnectionSource.getReadWriteConnection(JdbcConnectionSource.java:187)
at com.j256.ormlite.jdbc.JdbcConnectionSource.getReadOnlyConnection(JdbcConnectionSource.java:172)
at com.j256.ormlite.stmt.StatementExecutor.buildIterator(StatementExecutor.java:243)
at com.j256.ormlite.stmt.StatementExecutor.query(StatementExecutor.java:197)
at com.j256.ormlite.dao.BaseDaoImpl.query(BaseDaoImpl.java:277)
at com.j256.ormlite.stmt.QueryBuilder.query(QueryBuilder.java:366)
at com.j256.ormlite.stmt.Where.query(Where.java:480)
at com.j256.ormlite.dao.BaseDaoImpl.queryForEq(BaseDaoImpl.java:253)
at com.discurs.app.login.LoginFragment$1.onClick(LoginFragment.java:61)
at android.view.View.performClick(View.java:4209)
at android.view.View$PerformClick.run(View.java:17431)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:153)
at android.app.ActivityThread.main(ActivityThread.java:5297)
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:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
Some code:
ConnectionSource connectionSource = new PostgreSqlDBHelper().createConnectionSource();
Dao<UserVO, String> userDAO = DaoManager.createDao(connectionSource, UserVO.class);
List<UserVO> listUserVO = userDAO.queryForEq("username", userName.getText().toString().toLowerCase());
I use Ormlite to manage all database connections. All methods are from ormlite framework.
I cannot find any information about this error: java.lang.VerifyError: org/postgresql/jdbc/TimestampUtils
The minimum API version of the app is 16 (Jelly Bean)
I have done test (with physical and virtual devices) with all API's available since the minimum of my app.
The conclusion is that crash with:
Android Jelly Bean (API version: 16/17/18)
Android KitKat (API version: 19/20)
The next versions of android works correctly.
Please help me to find some solution or any idea of why it's occurs.
Thank you
I am not an Android developer, but I am trying to upgrade the Facebook SDK for an app I have on Android Studio. The previous SDK was 3.5 and I am trying to add 4.4.1
I have written the login class by following the getting started guide but now when I try to launch the app on a device, although it compiles just fine, it crashes on startup.
I get the following error:
08-05 21:05:25.128 25207-25207/? E/dalvikvm﹕ Could not find class
'com.history.HistoryOrder', referenced from method
com.service.Global. 08-05 21:05:25.138 25207-25207/?
E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.ExceptionInInitializerError
at com.imperautus.testProject.ActivitySplash.onCreate(ActivitySplash.java:61)
at android.app.Activity.performCreate(Activity.java:5326)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2218)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2309)
at android.app.ActivityThread.access$700(ActivityThread.java:157)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1289)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5317)
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:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NoClassDefFoundError: com.history.HistoryOrder
at com.service.Global.(Global.java:113)
at com.imperautus.testProject.ActivitySplash.onCreate(ActivitySplash.java:61)
at android.app.Activity.performCreate(Activity.java:5326)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2218)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2309)
at android.app.ActivityThread.access$700(ActivityThread.java:157)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1289)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5317)
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:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
What I see is that it complaints that it cannot find the class com.history.HistoryOrder but this class is in this exact place and it worked before the transition to the new Facebook SDK (I haven't touched the class' code).
The Global.java:113 says:
public static ArrayList<HistoryOrder> historyOrderList = new ArrayList<HistoryOrder>();
public static HistoryOrder historyOrderItem = new HistoryOrder();
I also changed all references in my code from app.Fragment to the support.v4.app.Fragment version because I thought that this caused the problem.
Any clues?
java.lang.NoClassDefFoundError is propably thrown because you have reached the 65k limit http://developer.android.com/tools/building/multidex.html#about
If you need to go beyond 65k limit you must include multidex support
gradle:
defaultConfig {
...
multiDexEnabled true
}
...
dependencies {
compile 'com.android.support:multidex:1.0.1'
...
}
Manifest:
<application
...
android:name="android.support.multidex.MultiDexApplication">
If you have a Custom Application class:
extend MultiDexApplication or add MultiDex.install(getBaseContext()); to your CustomApplication onCreate()
Note that on some low-end devices adding
MultiDex.install(getBaseContext()); to your CustomApplication onCreate()
can still throw java.lang.NoClassDefFoundError:
If so try adding MultiDex.install to attachBaseContext(Context base) instead
public class CustomApplication extends Application {
...
#Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(base);
}
...
ok, it seems that the error was due to a very different reason:
The app was updated to use Google Services 7.5 which made the methods go to more than 65k which made me to add the mutiDexEnabled to true.
I don't know if the code needs to be changed to support that, but it seems that after making this change, the app was crashing at random points (when I remarked the history call, the reachability class was crashing, when removed the reachability another, etc.
of course all classes were at the right place when the compiler complained about not finding them
This made me wonder if the multidex caused that so I removed some of the libraries like going from 7.5 verson of google play to 6.5
The app compiles and runs just fine now, allowing me to add the FB sdk 4+
I post this here, so it may help other people having problems without being able to understand where they come from.
I think you set the wrong class path so 1st check your class path
It will solve your problem
I have an app which works perfect in all 4.x devices, but now I have a report of the app not working on a samsung_gt (advance) android 2.3.6. Here is the trace:
FATAL EXCEPTION: main
java.lang.VerifyError: com.bamobile.fdtks.activities.MainActivity
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1409)
at android.app.Instrumentation.newActivity(Instrumentation.java:1024)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1573)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675)
at android.app.ActivityThread.access$1500(ActivityThread.java:121)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3770)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:670)
at dalvik.system.NativeStart.main(Native Method)
I have the latest support jar (v4) and have already patched the gson library in case the phone is already using it. The problem seems to be the the support lib. Any ideas? Thank you very much!
The most common cause of java.lang.VerifyError is having a class that uses methods that are not available on the version of Android where the app is running.
Based on your stacktrace, it seems that com.bamobile.fdtks.activities.MainActivity is using a method that is not available on Android 2.3.6, hence the "verification error" that you're seeing.
To fix it, change the minSdkVersion and of your app to 9 or 10 (Android 2.3.6) and look for errors/warnings about unsupported methods for that version of Android. You can also change (temporarily) both minSdkVersion and targetSdkVersion to 9 to force the compiler to fail when you use methods that are not found in Gingerbread devices.
I just posted a very major update to a program I have on google play. Everything works fine locally. But I have received field reports of about 20 or 30 of the following Crash report:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.twoplay.twoplayer/com.twoplay.twoplayer.TwoPlayer2Activity}: java.lang.ClassNotFoundException: com.twoplay.twoplayer.TwoPlayer2Activity in loader dalvik.system.PathClassLoader[/data/app/com.twoplay.twoplayer-1.apk]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1680)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784)
at android.app.ActivityThread.access$1500(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3835)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.twoplay.twoplayer.TwoPlayer2Activity in loader dalvik.system.PathClassLoader[/data/app/com.twoplay.twoplayer-1.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1672)
... 11 more
com.twoplay.twoplayer/com.twoplay.twoplayer.TwoPlayer2Activity is the correct name of the initial startup activity.
I also have a similar crash-dump where one of the app's services successfully starts, but crashes shortly after starting due to a missing class (not the service class itself).
I am using android.support.v4, along with a variety of other private libraries.
The project files have (for all practical purposes) been rebuilt from scratch since 2.0 upgrade. Although the package file name should be correct.
Curious things that I don't entirely understand in the log file:
/data/app/com.twoplay.twoplayer-1.apk
Why does "-1" get appended? The actual name of the APK seems to vary from crash dump to crash dump from the field. Sometimes the "-1" is there; sometimes not. e.g. (from other logs):
/data/app/com.twoplay.twoplayer-2.apk
I am assuming and hoping that Google Play developer console would not let me update my app if I had signed with an incorrect key. I didn't have any problems uploading.
Obviously, I'm not able to debug this locally, since I can't download my own app from Google Play. (I do hate that).
Any theories, or suggestions on how to approach gratefully appreciated.
I have had my first errors come through via the developer console on a published app. The errors are:
java.lang.RuntimeException: Unable to start activity ComponentInfo{fetchfree.diss.ellis/fetchfree.diss.ellis.Intro}:
android.content.res.Resources$NotFoundException: Resource ID #0x7f030007
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.access$2300(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030007
at android.content.res.Resources.getValue(Resources.java:892)
at android.content.res.Resources.loadXmlResourceParser(Resources.java:1869)
at android.content.res.Resources.getLayout(Resources.java:731)
at android.view.LayoutInflater.inflate(LayoutInflater.java:318)
at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:210)
at android.app.Activity.setContentView(Activity.java:1647)
at fetchfree.diss.ellis.Intro.onCreate(Intro.java:47)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
... 11 more
The app is running fine on my devices (S2,S3,S4 and galaxy ace) and the emulator and have not been able to replicate this. The resources its referring to at #0x7f030007 is a layout file for my setContentView of the Intro activity.
Resources:
Layout-normal-hdpi
Layout-normal-mdpi
Layout-sw360dp
My manifest states:
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="false"
android:smallScreens="false" />
I've seen this happen generally because the version uploaded to the playstore would not match the release apk. Best way is to clean the project in eclipse, build, release and then upload the apk to the play store. If this still happens you can check for a few more things I've gathered while searching for a similar issue on SO
1.) Make sure that your imports are correct. R.java must be your local R.java and not Android.R . Do a check in all your files
2.) Make sure you are not passing integer values to Views.
For instance dont do this
int i = 5;
myTextView.setText(i);
But do this
myTextView.setText(String.valueOf(i));
I suspect this to be a problem with you , so scan your code for this type of errors.
The compiler will not complain.
3.) Use this way of declaration
android:id="#id/android:list"
rather than
android:id="#android:id/list"
for id declarations
Make these changes if any, clean, build and upload. Should work.