NoClassDefFoundError when trying to copy support app - java

I'm trying to set up a tabbed interface for my application. I opened up the Support13Demos project distributed with the ADT. I am able to compile and run it. In order to work from it, I created a new project with a com.example.android.supportv13.app package and copied the appropriate files into it.
Then I copied over the referenced layouts and strings. All of my compilation errors are gone, but the application starts and immediately crashes with the error: Could not find class 'com.example.android.supportv13.app.ActionBarTabsPager$TabsAdapter', referenced from method com.example.android.supportv13.app.ActionBarTabsPager.onCreate.
The class ActionBarTabsPager does include a class TabsAdapter.
public class ActionBarTabsPager extends Activity {
…
public static class TabsAdapter extends FragmentPagerAdapter
implements ActionBar.TabListener, ViewPager.OnPageChangeListener { … }
}
I have tried cleaning the project and it didn't help. Private Libraries are also enabled.

i cant speak english well ,hope i can help u.
first right-click on your project--BuildPath--ConfigureBuildPath.
and then choose Order And ExPort
maybe some jar you need but you have not choose.
here's two picture(before modified and after modified)
before:http://img.my.csdn.net/uploads/201212/04/1354602396_3168.jpg;
after:http://img.my.csdn.net/uploads/201212/04/1354602436_2486.jpg

I added the android-support-v13.jar to the exports and removed Android Private Libraries.

Related

How to add a Class that extends FlutterPlugin to GeneratedPluginRegistrant?

I have my class that extends FlutterPlugin and MethodCallHandler. I would like to add this to the GeneratedPluginRegistrant. If i add it manually, fultter run is going to overwrite the list. What is the solution here? (Its not a flutter package, just a Class in the native android project)

Error class not Found fixed but I don't understand why

The file "HelloDemo.java" path is "/test/hello/HelloDemo.java"
package test.hello;
public class HelloDemo {
public static void main(String[] args) {
System.out.print("Hello!!");
}
}
when I "run" it, an error occurred.
Building HelloDemo.java and running HelloDemo
Error: Could not find or load main class HelloDemo
Then, I changed the code.
//package test.hello;
public class HelloDemo {
public static void main(String[] args) {
System.out.print("Hello!!");
}
}
when I "Run" it, code success output.
Building HelloDemo.java and running HelloDemo
Hello!!
This is the screenshot about the "Run".
I fixed an error, but I don't konw why, I need help, Thank you!
If I want to keep the package uncomment, How to fix it?
That's because you probably changed the location of your file after running it once already. Hence, the running configuration should change to look for the new test.hello.HelloDemo class inside the built jar and not for HelloDemo anymore (which was probably in the default package, initially). What is your IDE?
Remark: This is not because you changed the location of your file that the classpath changed, and vice-versa.
On IntelliJ, you should do this: https://www.jetbrains.com/help/idea/creating-and-editing-run-debug-configurations.html
Create a package using your IDE and add your class to it. Package name will be appended to top automatically.
Reguardless of IDE, folder structure should match package structure, your problem could be here.
A class's name is actually the package plus the class name. You cannot run HelloDemo in your first case, because that is not the class name. The class name is test.hello.HelloDemo.
By commenting out the package, you've essentially renamed the class to HelloDemo, so it runs.
In addition, when running the class with main, you must be in the correct location. For instance, if the class is test.hello.HelloDemo, your folder structure will be /test/hello/HelloDemo.java.
You must be in / and run test.hello.HelloDemo from there.

Why public classes are in the same file in android developers swipe view example?

I know that public classes have to be in a separate file. Otherwise, they can 't be public. I try to understand and implement swipe view with titles/tabs in an android app, so I downloaded this example, which is from The Android Open Source Project. The example works and runs like a charm, but I can 't understand why, and I also can 't understand why eclipse doesn 't show me any errors for this.
If the above method is allowed in some special cases, which are these cases?
The documentation gives the impression that all classes are top level, but they are not. Check the source code on the zip file and you will see DemoCollectionPagerAdapter and DemoObjectFragment are nested inside CollectionDemoActivity.
This is the layout of the classes.
public class CollectionDemoActivity extends FragmentActivity {
...
public static class DemoCollectionPagerAdapter extends FragmentStatePagerAdapter {
...
}
public static class DemoObjectFragment extends Fragment {
...
}
}

Type A is already defined error

I tried to search for the solution, but what I found I don't know how to apply in this situation. Please help me correct my code.
package Exercise;
public class Ex11_11 {
public static void main(String[] args) {
A a = new A(3);
}
}
class A extends B { // type A is already defined, A has a red underline
public A (int t) {
System.out.println("A's constructor is invoked");
}
}
class B { // type B is already defined, B has a red underline
public B () {
System.out.println("B's constructor is invoked");
}
}
Eclipse sometimes gets confused. If you choose Clean from the Project menu, it might fix these errors.
Well, the first thing to check is obviously whether or not you have another class called A in your file or in the same package.
I had the same problem. My computer was restarted remotely by I.T, and Eclipse did not shut down gracefully. I noticed there was an extra java file in my project that I didn't add. Deleted it, and now the error is gone.
In Project-> Clean, select "Clean projects selected below", select my project(s) and check "Start a build immediately" with "Build only selected projects".
Then problem will resolve.
Check if all your class files are saved. I've had this problem a few times: i define a class in a class file then move it in it's own one. Java gets confised, because it reads from the old version of the original file. Once you save it with the missing class definition in it and define the class in the new file all should be ok.
In your project you might have test directory with the same package structure and the same class name (for example copied without changing class name to *Test).
If none of the above solutions worked for you then it possible that Build Path is messed up. When you add a src to the build path make sure the src is not in the exclusion list. Place *(wild card) in the inclusion list and nothing in the exclusion list.
Make sure
Project | Build Automatically
is checked.
The main reason for this is that somewhere in same package you have already defined a class with name A.
which causes type A is already defined error.
check if there is any subclass or inner class named A
Have you added another project to the build path?
I had the same issue on my development environment (Eclipse).
My Maven application consumed other applications. On Eclipse, those projects were just added to the build path. One of them had the same package structure and class filename. Eclipse ends up thinking both the files which are physically different are in the same directory since the package structure and filename are same.
For example, let's say there are two files as below:
/Users/uname/home/proj1/com/app/proj/main/java/util/file1.java
and
/Users/uname/home/proj2/com/app/proj/main/java/util/file1.java
and lets say both have the package name
com.app.define.proj.util
If you add one of the project to the other, Eclipse would consider both the files to be in the same location.
I resolved by creating a JAR file out of the consumed application, adding it to the build path and removing the Eclipse project from build path.
rename the class name A to Aa or something and try to run.

Netbeans debugger unable debug any project with a particular class name

Some weird behavior in Netbeans 7.0. Ostensibly something went wrong when I created a class, because now no matter what project I am in, if I create a class named "RainbowBall" in a package called "gamesandbox.agents" (even if I just created the package fresh), it compiles fine, but the debugger gives me "Thread main stopped" when I call the RainbowBall constructor.
Stripped down example from a freshly created project:
//RainbowTest.java
package rainbowtest;
import gamesandbox.agents.RainbowBall;
public class RainbowTest
{
public static void main(String[] args)
{
RainbowBall r = new RainbowBall();
System.out.println(r.toString());
}
}
/*---------------*/
//RainbowBall.java
package gamesandbox.agents;
public class RainbowBall
{
public RainbowBall() {};
}
Again, this compiles fine, but the debugger acts like RainbowBall is an unresolvable symbol ("Thread Main Stopped at RainbowTest.java:10").
If I use any other class name (ex. "RainbowBall2") or any other package name I do not get this error. It happens in freshly created projects as well as old ones, and even when no outside libraries/jars/packages are being used in any way.
I'll probably just change the name or try updating to the latest NetBeans, but it would be good to understand what's going on. The IDE has clearly stored the name of the class somewhere permanent and project-agnostic, and is refusing to work with RainbowBalls like some kind of homophobe.
The output message you gave sounds like NetBeans thinks there is a breakpoint in the class. I'm not sure why it would be global to every project, though.

Categories

Resources