java - 无法启动 Activity ComponentInfo - 二进制 XML 文件行

标签 java android android-activity android-fragments parse-platform

我在物理设备(例如运行 4.4.2 的 Samsung Note 3)上运行应用程序时遇到问题。由于一些奇怪的原因,该应用程序可以在 ace 2 和模拟器上运行。为了尝试理解为什么它在注释 3 上不起作用。我通过设备(使用 USB 连接它)从 eclipse 运行应用程序,下面是由触发的意外错误消息生成的日志消息登录后。社交媒体登录位于登录页面,然后将用户重定向到另一个页面,这就是触发意外错误的地方。

以下是日志猫消息:

8-18 15:57:56.227: E/AndroidRuntime(19911): FATAL EXCEPTION: main
    08-18 15:57:56.227: E/AndroidRuntime(19911): Process: com.dooba.beta, PID: 19911
    08-18 15:57:56.227: E/AndroidRuntime(19911): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dooba.beta/com.dooba.beta.MoodActivity}: android.view.InflateException: Binary XML file line #90: Error inflating class <unknown>
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2282)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2340)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.app.ActivityThread.access$800(ActivityThread.java:157)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.os.Handler.dispatchMessage(Handler.java:102)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.os.Looper.loop(Looper.java:157)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.app.ActivityThread.main(ActivityThread.java:5293)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at java.lang.reflect.Method.invokeNative(Native Method)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at java.lang.reflect.Method.invoke(Method.java:515)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at dalvik.system.NativeStart.main(Native Method)
    08-18 15:57:56.227: E/AndroidRuntime(19911): Caused by: android.view.InflateException: Binary XML file line #90: Error inflating class <unknown>
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.view.LayoutInflater.createView(LayoutInflater.java:626)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:675)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:700)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:340)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.app.Activity.setContentView(Activity.java:1973)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at com.dooba.beta.MoodActivity.onCreate(MoodActivity.java:20)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.app.Activity.performCreate(Activity.java:5389)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2246)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    ... 11 more
    08-18 15:57:56.227: E/AndroidRuntime(19911): Caused by: java.lang.reflect.InvocationTargetException
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at java.lang.reflect.Constructor.constructNative(Native Method)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.view.LayoutInflater.createView(LayoutInflater.java:600)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    ... 24 more
    08-18 15:57:56.227: E/AndroidRuntime(19911): Caused by: java.lang.OutOfMemoryError
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:677)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:507)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:872)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.content.res.Resources.loadDrawable(Resources.java:3022)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.content.res.TypedArray.getDrawable(TypedArray.java:602)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.view.View.<init>(View.java:3694)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.widget.TextView.<init>(TextView.java:868)

    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.widget.Button.<init>(Button.java:108)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    at android.widget.Button.<init>(Button.java:104)
    08-18 15:57:56.227: E/AndroidRuntime(19911):    ... 27 more

类(class) Activity

public class LoginActivity extends Activity {

    private Button facebookButton;
    private Button twitterButton;
    private Dialog progressDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);
        
        twitterButton = (Button) findViewById(R.id.twitterButton);
        twitterButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                findViewById(R.id.twitterButton).setBackgroundResource(R.drawable.ltwitternf);
                onTwitterButtonClicked();
            }
        });

        facebookButton = (Button) findViewById(R.id.facebookButton);
        facebookButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                findViewById(R.id.facebookButton).setBackgroundResource(R.drawable.lfacebooknf);
                onLoginButtonClicked();
                

            }
        });

        // Check if there is a currently logged in user
        // and they are linked to a Facebook account.
        ParseUser currentUser = ParseUser.getCurrentUser();
        if ((currentUser != null) && ParseFacebookUtils.isLinked(currentUser)) {
            // Go to the user info activity
            intropage();                
        }
    }
    
    
    
    


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        ParseFacebookUtils.finishAuthentication(requestCode, resultCode, data);
        
        
    }
    
    

    private void onLoginButtonClicked() {
        LoginActivity.this.progressDialog = ProgressDialog.show(
                LoginActivity.this, "", "Logging in...", true);
        List<String> permissions = Arrays.asList("public_profile", "user_about_me",
                "user_relationships", "user_birthday", "user_location");
        ParseFacebookUtils.logIn(permissions, this, new LogInCallback() {
            @Override
            public void done(ParseUser user, ParseException err) {
                LoginActivity.this.progressDialog.dismiss();
                if (user == null) {
                    Log.d(IntegratingFacebookTutorialApplication.TAG,
                            "Uh oh. The user cancelled the Facebook login.");
                } else if (user.isNew()) {
                    Log.d(IntegratingFacebookTutorialApplication.TAG,
                            "User signed up and logged in through Facebook!");
                    showUserDetailsActivity();
    
                } else {
                    Log.d(IntegratingFacebookTutorialApplication.TAG,
                            "User logged in through Facebook!");
                moodpage();             

                }
            }
        });
    }
    
    private void onTwitterButtonClicked() {
        ParseTwitterUtils.logIn(this, new LogInCallback() {
              @Override
              public void done(ParseUser user, ParseException err) {
                if (user == null) {
                  Log.d("MyApp", "Uh oh. The user cancelled the Twitter login.");
                } else if (user.isNew()) {
                  Log.d("MyApp", "User signed up and logged in through Twitter!");
                  showUserDetailsActivity();        
                  } else {
                  Log.d("MyApp", "User logged in through Twitter!");
                  moodpage();               }
              }
              
            });
    }
    

    private void showUserDetailsActivity() {
        Intent intent = new Intent(this, ProfileCreation.class);
        startActivity(intent);
    }
    
    private void moodpage() {
        Intent intent = new Intent(this, MoodActivity.class);
        startActivity(intent);
    }
    
    private void intropage() {
        Intent intent = new Intent(this, introActivity.class);
        startActivity(intent);
    }
}

下面是心情 Activity 页面

public class MoodActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mood);
        
        final TextView teating = (TextView) this.findViewById(R.id.tdinning);
        teating.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                MoodActivity.this.startActivity(new Intent(MoodActivity.this, CasualEventsActivity.class));
            }
        });
        
        final ImageView ieating = (ImageView) this.findViewById(R.id.idinning);
        ieating.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                MoodActivity.this.startActivity(new Intent(MoodActivity.this, CasualEventsActivity.class));
            }
        });
        
        final TextView tdrinks = (TextView) this.findViewById(R.id.tcasual);
        tdrinks.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                MoodActivity.this.startActivity(new Intent(MoodActivity.this, CasualEventsActivity.class));
            }
        });
        
        final ImageView idrinks = (ImageView) this.findViewById(R.id.icasual);
        idrinks.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                MoodActivity.this.startActivity(new Intent(MoodActivity.this, CasualEventsActivity.class));
            }
        });
        
        final TextView tshows = (TextView) this.findViewById(R.id.tshows);
        tshows.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                MoodActivity.this.startActivity(new Intent(MoodActivity.this, CultureEventsActivity.class));
            }
        });
        
        final ImageView ishows = (ImageView) this.findViewById(R.id.ishows);
        ishows.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                MoodActivity.this.startActivity(new Intent(MoodActivity.this, CultureEventsActivity.class));
            }
        });
        
        final TextView tarts = (TextView) this.findViewById(R.id.tculture);
        tarts.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                MoodActivity.this.startActivity(new Intent(MoodActivity.this, CultureEventsActivity.class));
            }
        });
        
        final ImageView iarts = (ImageView) this.findViewById(R.id.iculture);
        iarts.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                MoodActivity.this.startActivity(new Intent(MoodActivity.this, CultureEventsActivity.class));
            }
        });
        
        final Button viewall = (Button) this.findViewById(R.id.brandom);
        viewall.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                MoodActivity.this.startActivity(new Intent(MoodActivity.this, CasualEventsActivity.class));
            }
        });
    }
    
    

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main_activity_actions, menu);
        getActionBar().setDisplayShowTitleEnabled(false);
        

        
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle presses on the action bar items
        switch (item.getItemId()) {
            case R.id.pageExperience:
                openPageExperience();
                return true;
            case R.id.pageMessaging:
                openPageMessage();
                return true;
                
            case R.id.pageEventsBooking:
                openPageBook();
                return true;
                
            case R.id.pageProfile:
                openPageProfile();
                return true;
                
            case R.id.pageReport:
                openPageReport();
                return true;
                
            case R.id.pageAbout:
                openPageAbout();
                return true;
                
            default:
                return super.onOptionsItemSelected(item);
        }
    }

    private void openPageAbout() {
        // TODO Auto-generated method stub
    
    }

    private void openPageReport() {
        // TODO Auto-generated method stub
        
    }

    private void openPageProfile() {
        // TODO Auto-generated method stub
        Intent intent = new Intent(this, ProfileChange.class);
        startActivity(intent);
        
    }

    private void openPageBook() {
        // TODO Auto-generated method stub
        
    }

    private void openPageMessage() {
        // TODO Auto-generated method stub
        
    }

    private void openPageExperience() {
        // TODO Auto-generated method stub
        Intent intent = new Intent(this, MoodActivity.class);
        startActivity(intent);
    }
    
}

如果您需要澄清,请告诉我。 提前致谢。

最佳答案

您的问题是由于加载位图造成的。在这里您可以找到 OutMemoryException 的解决方案.

关于java - 无法启动 Activity ComponentInfo - 二进制 XML 文件行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25374001/

相关文章:

android - 设置可扩展列表的样式

android - android中的圆形布局

java - Android:重新启动搜索线程

java - 从antlr token 生成代码

android - invalidate() 不会立即更改自定义 View 的内容

android - Gradle:在根项目 "x"中找不到项目 "myProject"

android - 从服务启动的 Activity 丢失了包中的 "extra"

android - Activity生命周期方法: onPostResume significance

java - 在 Java 中从 json 文件中删除 json 对象

java - Ant Build 没有给出确切的类文件