我在设备上运行当前的android项目时遇到了一些麻烦.该项目的构建没有任何错误(使用Maven),但是在我运行此错误时会发生:
E/AndroidRuntime(12097): FATAL EXCEPTION: main
E/AndroidRuntime(12097): Process: org.hello, PID: 12097
E/AndroidRuntime(12097): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.hello/org.hello.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "org.hello.MainActivity" on path: DexPathList[[zip file "/data/app/org.hello-1.apk"],nativeLibraryDirectories=[/data/app-lib/org.hello-1, /vendor/lib, /system/lib]]
E/AndroidRuntime(12097): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2124)
E/AndroidRuntime(12097): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
E/AndroidRuntime(12097): at android.app.ActivityThread.access$800(ActivityThread.java:139)
E/AndroidRuntime(12097): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
E/AndroidRuntime(12097): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(12097): at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(12097): at android.app.ActivityThread.main(ActivityThread.java:5086)
E/AndroidRuntime(12097): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(12097): at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(12097): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
E/AndroidRuntime(12097): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
E/AndroidRuntime(12097): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(12097): Caused by: java.lang.ClassNotFoundException: Didn't find class "org.hello.MainActivity" on path: DexPathList[[zip file "/data/app/org.hello-1.apk"],nativeLibraryDirectories=[/data/app-lib/org.hello-1, /vendor/lib, /system/lib]]
E/AndroidRuntime(12097): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
E/AndroidRuntime(12097): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
E/AndroidRuntime(12097): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
E/AndroidRuntime(12097): at android.app.Instrumentation.newActivity(Instrumentation.java:1084)
E/AndroidRuntime(12097): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2115)
E/AndroidRuntime(12097): ... 11 more
W/ActivityManager( 916): Force finishing activity org.hello/.MainActivity
我的MainActivity类是:
package org.hello;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTabHost;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuInflater;
public class MainActivity extends FragmentActivity {
private FragmentTabHost mTabHost;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);
mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("Tab1"), Tab1Fragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator("Tab2"), Tab2Fragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("tab3").setIndicator("Tab3"), Tab3Fragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("tab4").setIndicator("Tab4"), Tab4Fragment.class, null);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_search:
openSearch();
return true;
case R.id.action_settings:
openSettings();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public void openSearch() {
//
}
public void openSettings() {
//
}
}
我的pom.xml是:
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4.0.0
org.hello
basic-tabs
0.1.0
apk
UTF-8
UTF-8
/home/kleber/android-sdk-linux/
com.google.android
android
4.1.1.4
provided
com.google.android
support-v4
20.0.0
system
/home/kleber/android-sdk-linux/extras/android/support/v4/android-support-v4.jar
com.jayway.maven.plugins.android.generation2
android-maven-plugin
3.9.0-rc.1
19
true
true
true
org.apache.maven.plugins
maven-compiler-plugin
3.1
1.7
1.7
true
true
/home/kleber/jdk1.7.0_55/bin/javac
true
MainActivity类放置在我的项目中的正确目录中(与其他项目一样,它们运行没有问题).
如果删除依赖关系support-v4(以及该库中类的所有代码中引用的所有内容),则运行此项目没有问题.
有人可以看到我在这里想念的吗?
解决方法:
我记不清了,但是使用那个support-v4库时遇到了同样的错误,甚至没有使用Maven.但是,由于您真的急于寻求帮助,因此我认为这可以解决我的问题.如果您具有Eclipse(我不了解其他IDE),请转到构建路径,转到“订购和导出”,然后在support-v4库中删除或设置“导出”.
标签:maven,android-support-library,android
来源: https://codeday.me/bug/20191028/1956204.html