我试图运行示例代码在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
编辑此错误发生在大多数初学者身上,问题是您必须在Manifest文件中添加所有活动。
这是你的意图的问题。
请在你的Activity
中添加你的AndroidManifest.xml
。
如果您想进行新活动,请在AndroidManifest.xml
中注册。
在我的情况下,我没有设置setContentView(R.layout.main);
如果你创建一个新类,不要忘记在onCreate(Bundle savedInstanceState)
方法中设置它。
我曾多次做过这个愚蠢的错误。
只需清理您的工作项目或重启eclipse。然后运行您的项目。它会工作。
对我来说,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
文件。
好吧,我在iPhone上相当有经验,但对android很新。我有这样的问题:
Button infoButton = (Button)findViewById(R.id.InfoButton);
这行代码如上:
@Override
public void onCreate (Bundle savedInstanceState) {
}
可能是我被剥夺了睡眠:P
我最近在重新安装Eclipse时遇到了这个问题。结果我的编译器合规性级别设置为Java 1.7,项目需要1.6。
在Eclipse中:项目 - >属性 - > Java编译器 - > JDK合规性
遇到此问题,并通过设置活动的“启动模式”属性来修复它。
此问题的另一个原因可能是缺少库。
转到属性 - > Android并检查是否正确添加了库
我有同样的问题,但我在Manifest文件中声明了我的活动,名称正确。
我的问题是我没有在“libs”文件夹中导入第三方库,我需要在我的proyect中引用它们(右键单击,属性,Java构建路径,库,添加Jar ...)。
如果您的活动类位于默认包中,则会发生这种情况。我通过将活动类移动到新包来修复它。并更改manifest.xml
之前
activity android:name=".MainActivity"
后
activity android:name="new_package.MainActivity"
使用NDK时,这种情况经常发生在我身上。我发现每次做ndk-build
之后,我都必须在Eclipse中做一个“干净”。希望它能帮到任何人:)
在我的情况下,我忘了添加谷歌地图库
<application>
....
<uses-library android:name="com.google.android.maps" />
</application>
另外,检查您是否在活动路径之前没有错过前面的点
<activity android:name=".activities.MainActivity"/>
当您使用ActionBarActivity
但指定了非AppCompat
样式时,也会发生此错误。
要解决此问题,只需将您的应用程序样式父级设置为Theme.AppCompat
,如下所示:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
</style>
右键单击项目>属性> android>并尝试使用不同版本的android之前我正在使用android 4.4然后我改为android 4.3并且它工作!
我遇到了同样的问题(无法实例化Activity):
第一个原因:
我正在访问
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" />
希望这可以帮助
在我的情况下,我试图嵌入Facebook SDK,我有错误的应用程序ID;因此错误突然出现。在清单文件中,您应该拥有正确的元数据:
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
如果您安装了Android Studio 2.3.3和Android Studio 3.0.0,则在两个程序之间进行切换以进行开发将导致此错误。这是因为存在一个程序中支持的类不被另一个支持的情况,反之亦然。保持使用哪个版本的Android Studio开发项目的一致性非常重要。
正如djjeck
在this的评论中所建议的那样,我错过了为我的课程添加public
修饰符。
它应该是
public class MyActivity extends AppCompatActivity {
它可能会帮到像我这样的人。
我已经尝试了以上所有解决方案,但没有任何对我有用在我刚刚添加extend
活动而不是AppCompatActivity
并且工作正常。
用过的
public class MainActivity extends Activity
代替
public class MainActivity extends AppCompatActivity
我不知道真正的问题是什么。
当我尝试在2.2上运行Activity
时,发生了这种情况,使用了Honeycomb的导入,这在旧版本的Android中不可用,也没有包含在v4支持包中。
你的新活动像AndroidManifest.xml
一样添加".NewActivity"
</activity>
<activity android:name=".NewActivity" />
您应该确保在AndroidManifest.xml文件中正确定义了应用程序中的所有活动。
此外,如果他们以路径开头,请确保此路径存在。
例如。这不起作用:
<activity android:name=".com.example.android.networkusage.NetworkActivity" android:label="@string/app_name" >
如果您的应用程序名称是com.example.networkusage
(请注意缺少.android。)
或者更好的是,在清单中定义活动时不要包含路径。只提出他们的名字(前面有一个圆点)。
<activity android:name=".NetworkActivity" android:label="@string/app_name" >
您可能正试图在onCreate()
之前找到不正确的视图。
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);
}
...
}
你可能在你的领域有一些错误
public class Search_costumer extends Activity {
// you may have some errors like this
int x =3/0;
// I have error in initializing this variable too
MySimpleOnGestureListener mySimpleOnGestureListener =new MySimpleOnGestureListener();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
所以我的建议是不要直接在你的字段中执行onCreate方法中的所有初始化
这样解决
public class Search_costumer extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// you may have some errors like this
int x =3/0;
// I have error in initializing this variable too
MySimpleOnGestureListener mySimpleOnGestureListener =new MySimpleOnGestureListener();
}
}
还有另一种获取java.lang.RuntimeException的方法:无法实例化活动ComponentInfo异常,这是您尝试启动的活动是抽象的。我犯了这个愚蠢的错误,很容易被忽视。
这也是因为这个问题。我取消选中需要导出到apk的罐子,同样的事情发生了。请勾选你的应用程序需要运行的jar。
我也遇到了这个问题,但方式略有不同。这是我的场景:
应用细节:
<uses-library android:name="com.google.android.maps" />
在图书馆项目和我的主要项目的清单中(这可能在图书馆中没有必要吗?)但是,我仍然遇到了原帖中描述的错误,无法让它消失。但问题是,在某方面略有不同:
我是如何修理它的:
这可能是一个彻头彻尾的新手错误,但我花了很长时间来挖掘帖子和我的代码才弄明白,所以希望它可以对其他人有所帮助。可能无法解决所有情况,但在这种特殊情况下,最终成为我问题的解决方案。
这个错误也可能是一个愚蠢错误的终极迹象(就像我 - 我的意思是,咳嗽,就像我的一个朋友曾向我展示过他们的代码一样)他们试图在一个方法之外执行代码,比如试图这样做:
SQLiteDatabase db = openOrCreateDatabase("DB", MODE_PRIVATE, null); //trying to perform function where you can only set up objects, primitives, etc
@Override
public void onCreate(Bundle savedInstanceState) {
....
}
而不是这个:
SQLiteDatabase db;
@Override
public void onCreate(Bundle savedInstanceState) {
db = openOrCreateDatabase("DB", MODE_PRIVATE, null);
....
}
这可能与实际问题无关,但在我的实例中,我试图实施Kotlin并遗漏了apply plugin: 'kotlin-android'
。发生错误是因为它无法将MainActivity识别为.kt文件。
希望它可以帮助某人。
我通过删除项目中的Bin
和Gen
文件夹(项目将在构建时自动返回)然后从 - >菜单 - >项目 - >清理清除项目来解决此问题。
谢谢。