我在物理设备(例如运行 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/