Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
523 views
in Technique[技术] by (71.8m points)

eclipse - Android - Unable to resolve superclass

I have dug out an old android project that I was working on a few years ago and loaded it into a new eclipse install (latest ADT etc).

The project all compiles ok (after some minor tweaking), and the app starts fine, however, when i press a button to start the main activity i get the following stack trace:

FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.tmm.android.activities.GameActivity
    at com.tmm.android.activities.StartActivity.onClick(StartActivity.java:53)
    at android.view.View.performClick(View.java:2408)

Now the class in question (GameActivity) is one of my classes that is in the app, so I know thats not the problem - but I noticed a warning right at the top of the logcat:

Unable to resolve superclass of Lcom/tmm/android/activities/GameActivity; (33)
Link of class 'Lcom/tmm/android/activities/GameActivity;' failed

My class GameActivity extends another class that is part of a third-party jar that i have included in the project (included it in the 'libs' directory, and added it to the project build path in eclipse).

Can anyone advise what I might have done wrong, or anything that has changed in the ADT/etc that I might need to take account of (it was working fine when i last had it in Eclipse)

Cheers

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I had the same problem. I had a custom View class which called methods in an imported library. I was also getting the "Unable to resolve superclass" error when the app was trying to create my view (while trying to inflate a layout that referred to that custom View).

I resolved my problem, and I had a play around to determine what I think is the definitive answer.

(As at writing, I am using the Eclipse Android Tools R21).

If you are using an external jar

  • Copy it to your project's "libs" folder. The Android Tools should do the rest.

If the library you want to use is a separate project in your workspace.

  • In your library project: go into Properties->Android and check the "Is Library" checkbox.
  • In your app project: go into to Properties->Android and add the library project in the same section there (click "Add.."). Don't check "Is Library" here!

Some answers to this question say you need to go to Properties->Java Build Path->Projects and add the library project there. For normal Java projects you would do that, but it appears the Android Tools don't need or use that.

Finally, you will probably want to make sure the lib is included in your exported app

  • Go to Properties->Java Build Path->Order and Export and make sure the library is checked.

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...