Android java.lang.RuntimeException:无法实例化活动组件信息
我试图运行一个示例代码 在android 1.5模拟器中启动应用程序时,我遇到了以下错误。。。。 有人有什么提示吗 来自LogCat的错误: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
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{
}