启动应用程序时出现意外错误

Posted

技术标签:

【中文标题】启动应用程序时出现意外错误【英文标题】:Unexpected error while launching app 【发布时间】:2018-03-26 17:03:48 【问题描述】:

我是 java 新手,我开始为 android 编写一个应用程序,但我遇到了一个错误,我认为问题出在意图过滤器上,但我真的不确定.. 我这里什么都不懂.我怎样才能发挥我的水平?我的代码是一个好的起点吗?

错误信息:

     $ adb shell am start -n "test.beta1/test.beta1.MainActivity" -a 
       android.intent.action.MAIN -c android.intent.category.LAUNCHER
       Unexpected error while executing: am start -n 
       "test.beta1/test.beta1.MainActivity" -a android.intent.action.MAIN -c 
       android.intent.category.LAUNCHER
       Error while Launching activity

主要活动代码(更新):

   package test.beta1;

   import android.content.Intent;
   import android.media.Image;
   import android.net.Uri;
   import android.provider.MediaStore;
   import android.support.v7.app.AppCompatActivity;
   import android.os.Bundle;
   import android.view.View;
   import android.widget.Button;
   import android.widget.ImageView;

   public class MainActivity extends AppCompatActivity implements 
   View.OnClickListener
   private static final int RESULT_LOAD_IMAGE  = 1;
   ImageView imageToUpload;
   Button bUploadImage;


  @Override
   protected void onCreate(Bundle savedInstanceState) 
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     imageToUpload  =  (ImageView)  findViewById(R.id.imageToUpload);
     bUploadImage  = (Button) findViewById(R.id.etUploadName);
     imageToUpload.setOnClickListener(this);
     bUploadImage.setOnClickListener(this);
  

  @Override
  public void onClick(View v) 
   switch(v.getId())
       case R.id.imageToUpload:
           Intent galleryIntent = new Intent(Intent.ACTION_PICK, 
         MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
          startActivityForResult(galleryIntent,RESULT_LOAD_IMAGE);
          break;
      case R.id.bUploadImage:

          break;

  


 @Override
   protected void onActivityResult(int requestCode, int resultCode, Intent 
    data) 
  
    super.onActivityResult(requestCode, resultCode, data);
     if(requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && data != 
       null)
        Uri selectedImage  = data.getData();
        imageToUpload.setImageURI(selectedImage);

       
      
  

Activity_main.xml 代码:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:padding="10dp"
android:layout_>

<LinearLayout
    android:orientation="vertical"
    android:layout_
    android:layout_>

    <ImageView
        android:id="@+id/imageToUpload"
        android:layout_gravity="center_horizontal"
        android:layout_
        android:layout_ />

    <EditText
        android:id="@+id/etUploadName"
        android:layout_
        android:layout_ />

    <Button
        android:id="@+id/bUploadImage"
        android:text="Upload Image"
        android:layout_
        android:layout_ />

</LinearLayout>

请问,你能解释一下如何解决这个问题吗?

【问题讨论】:

您在尝试运行 ADB 日志时应该有一个堆栈跟踪。你能提供日志吗? 事件日志:15/10/17 12:50 AM Gradle 同步完成 1:19 AM 执行任务:[:app:assembleDebug] 1:19 AM Gradle 构建完成,出现 4 个错误5s 362ms 1:20 AM 执行任务:[:app:assembleDebug] 1:20 AM Gradle 构建完成,2s 261ms 1:26 AM 执行任务:[:app:assembleDebug] 1:26 AM Gradle build完成于 1s285ms 1:27 AM 执行任务:[:app:assembleDebug] 1:27 AM Gradle 构建完成于 4s424ms 1:28 AM 执行任务:[:app:assembleDebug] 1:28 AM Gradle 构建完成于 1s879ms 1:29 AM 会话“应用程序”:启动活动时出错 我在帖子中添加了 gradle 控制台(已编辑) 我在运行时得到了apk文件,但是打开后,它会在2秒后关闭 【参考方案1】:

在您的 onCreate 中,您将错误的 id 转换为 bUploadImage。您正在投射的 id R.id.etUploadName 是一个 Textview

【讨论】:

所以我应该投射按钮?还是图像视图? 只需更改这一行“bUploadImage = (Button) findViewById(R.id.etUploadName);”在你的 oncreate 到“bUploadImage = (Button) findViewById(R.id.bUploadImage);”如果问题已解决,请点赞【参考方案2】:

你可以从这个错误中找到问题的根源:

/Users/abhinanda/Desktop/Beta1/app/src/main/java/test/beta1/MainActivity.java:16: error: variable bDownloadedImage is already defined in class MainActivity Button bUploadImage, bDownloadedImage; ^

/Users/abhinanda/Desktop/Beta1/app/src/main/java/test/beta1/MainActivity.java:28: error: incompatible types: Button cannot be converted to ImageView bDownloadedImage = (Button) findViewById(R.id.etDownloadName); ^ 2 errors

首先,您定义了多个 bDownloadedImage。 其次,您试图将 Button 转换为 ImageView 这是一个错误。

检查你的布局。

【讨论】:

现在我删除了下载的图像。我只是想让上传图像工作。我不明白你解决的第二个问题。我已经添加了我的 activity_main.xml 代码和我更新的 Main_activity.java上面的帖子(已编辑)。请尽快提供帮助

以上是关于启动应用程序时出现意外错误的主要内容,如果未能解决你的问题,请参考以下文章

启动路由器时出现意外错误:错误:缺少必需的参数“catchAll”

启动 Intel python3.7 shell 时出现意外错误:无法执行任何命令 - 中止错误

尝试调用 AIA 时,Keycloak“处理对身份提供者的身份验证请求时出现意外错误”

启动logcat时出现意外错误。尝试重新选择设备。] EO

Selenium:启动 IE 时出现意外错误。浏览器缩放级别设置为 122%。应该设置为 100%

JMeter 5.4打开测试计划时出现意外错误