Android java.lang.RuntimeException:无法实例化活动组件信息

Android java.lang.RuntimeException:无法实例化活动组件信息,android,Android,我试图运行一个示例代码 在android 1.5模拟器中启动应用程序时,我遇到了以下错误。。。。 有人有什么提示吗 来自LogCat的错误: 01-13 02:28:08.392: ERROR/AndroidRuntime(2888): FATAL EXCEPTION: main 01-13 02:28:08.392: ERROR/AndroidRuntime(2888): java.lang.RuntimeException: Unable to instantiate activity Co

我试图运行一个示例代码 在android 1.5模拟器中启动应用程序时,我遇到了以下错误。。。。 有人有什么提示吗

来自LogCat的错误:

01-13 02:28:08.392: ERROR/AndroidRuntime(2888): FATAL EXCEPTION: main
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.s.android.test/com.s.android.test.MainActivity}: java.lang.ClassNotFoundException: com.s.android.test.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.s.android.test-2.apk]
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1544)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.os.Looper.loop(Looper.java:123)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.main(ActivityThread.java:3647)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at java.lang.reflect.Method.invokeNative(Native Method)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at java.lang.reflect.Method.invoke(Method.java:507)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at dalvik.system.NativeStart.main(Native Method)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): Caused by: java.lang.ClassNotFoundException: com.s.android.test.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.s.android.test-2.apk]
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1536)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     ... 11 more
01-13 02:28:08.407: WARN/ActivityManager(112):   Force finishing activity com.s.android.test/.MainActivity
编辑
这个错误发生在大多数初学者身上,问题是您必须将所有活动添加到清单文件中。

这是您的意图问题

<uses-feature android:name="android.hardware.Camera"></uses-feature>
<uses-permission android:name="android.permission.CAMERA" />
请在您的
AndroidManifest.xml
中添加您的
活动


当你想创建一个新的活动时,你应该在你的
AndroidManifest.xml

中注册它。在我的例子中,我忘了添加谷歌地图库

<application>
    ....

    <uses-library android:name="com.google.android.maps" />
</application>

....
另外,检查活动路径之前的点是否没有丢失

<activity android:name=".activities.MainActivity"/>


获取java.lang.RuntimeException的另一种方法是:无法实例化activity ComponentInfo异常,即您尝试启动的活动是抽象的。我曾经犯过这个愚蠢的错误,很容易被忽视。

在使用NDK时,这种情况经常发生在我身上。我发现在每次执行
ndk构建之后,有必要在Eclipse中进行“清理”。希望它能帮助任何人:)

在我的例子中,我还没有设置
setContentView(R.layout.main)

如果您创建了一个新类,不要忘记在
onCreate(Bundle savedInstanceState)
方法中设置它


这个愚蠢的错误我已经犯过好几次了

遇到此问题,并通过设置活动的“启动模式”属性来修复

好的,我对iPhone有相当的经验,但对android还是新手。我遇到这个问题时:

Button infoButton = (Button)findViewById(R.id.InfoButton);
上面这行代码:

@Override
public void onCreate (Bundle savedInstanceState) {
}

可能是我睡眠不足:p

对我来说,
AndroidManifest.xml
中的包字符串不正确(复制自教程)。 确保此文件中的包字符串与主要活动所在的位置相同,例如

 package="com.example.app"
一种简单的方法是在“Manifest”选项卡中打开AndroidManifest.xml文件,然后在Package旁边的文本框中键入它,或者使用Browse按钮

此外,我的活动的包字符串错误,例如

<activity android:name="com.example.app.MainActivity" android:label="@string/app_name">


几周后,当我重新命名包名时,我(愚蠢地)遇到了同样的错误。如果执行此操作,请确保也更新了
AndroidManifest.xml
文件。

我也遇到了此问题,但方式略有不同。以下是我的设想:

应用程序详细信息:

  • 使用ActionBarSherlock作为库
  • 在ActionBarSherlock库中使用android-support-v4-r7-googlemaps.jar,这样我就可以在我的主要项目中使用“地图片段”
  • 将jar添加到我的主项目的构建路径中
  • 包含在库项目和我的主要项目的清单中(库中可能不需要这样做?)
  • 主项目中的清单具有正确的活动定义和所有适当的属性
  • 我没有抽象活动,也没有在堆栈溢出上看到的与此问题相关的任何其他问题
然而,我仍然遇到了原帖子中描述的错误,无法让它消失。但问题在一个方面略有不同:

  • 它只影响将应用程序重新安装到我的设备上。任何时候第一次安装应用程序时,我都会收到错误,前面有几个“警告”:无法解析FragmentActivity的超类
  • 这些警告可追溯到ActionBarSherlock库
  • 该应用程序将强制关闭并崩溃
  • 如果我立即重建并重新部署该应用程序,它运行良好
  • 它唯一一次崩溃是在一个全新的安装上。如果我卸载了应用程序,从Eclipse中重新构建和部署,它将崩溃。第二次构建/部署时,它会工作得很好
我是如何修复的:

  • 在ActionBarSherlock库项目中,我将android-support-v4-r7-googlemaps.jar添加到构建路径中
  • 单靠这一步并不能解决问题

  • 一旦jar被添加到构建路径中,我就在JavaBuildPath>order and Export选项卡上更改了顺序——我将jar设置为列表中的第一项(它是/src和/gen项之后的最后一项)

  • 然后,我重新构建了应用程序并将其重新部署到我的设备上——它在新安装中如期工作。为了确定这一点,我再次卸载了它2-3次,并重新安装了它——仍然像预期的那样工作


这可能是一个完全的新手错误,但我花了相当长的时间在文章和我的代码中挖掘出来,所以希望它能对其他人有所帮助。可能无法修复所有情况,但在这种特殊情况下,这最终是我问题的解决方案。

我最近在重新安装Eclipse时遇到了这个问题。事实证明,我的编译器符合性级别设置为Java1.7,项目要求为1.6

在Eclipse中:
Project->Properties->Java编译器->JDK Compliance

此问题的另一个原因可能是缺少库


转到Properties->Android并检查是否正确添加了库

我通过从project中删除
Bin
Gen
文件夹(在项目生成时会自动返回)并从->菜单->项目->清理中清理项目,解决了这个问题


谢谢。

我也遇到了同样的问题,但我在清单文件中声明了我的活动,并使用了正确的名称

我的问题是,我不必在“libs”文件夹中导入第三方库,我需要在项目中引用它们(右键单击、属性、Java构建路径、库、添加Jar…。

这也是因为这个问题。我检查了需要导出到apk的罐子,同样的事情发生了。请在那个罐子上打钩
SQLiteDatabase db;

@Override
public void onCreate(Bundle savedInstanceState) {
db = openOrCreateDatabase("DB", MODE_PRIVATE, null);
....
}
public class MainActivity extends Activity {

  ImageView mainImage = (ImageView) findViewById(R.id.imageViewMain); //incorrect

  @Override
  protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }
  ...
}
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
    <!-- Customize your theme here. -->
</style>
activity android:name=".MainActivity" 
activity android:name="new_package.MainActivity"
Camera mCamera;
Camera.Parameters params = mCamera.getParameters();
mCamera = Camera.open();
<activity android:name=".activities.MainActivity"/>
<uses-feature android:name="android.hardware.Camera"></uses-feature>
<uses-permission android:name="android.permission.CAMERA" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
public class MyActivity extends AppCompatActivity {
public class MainActivity extends Activity  
public class MainActivity extends AppCompatActivity 
     public abstract class SampleActivity extends AppcompatActivity{
     }
     public class SampleActivity extends AppcompatActivity{
     }