gpt4 book ai didi

java - Android:扩展 ActionBarActivity 会使应用程序崩溃

转载 作者:行者123 更新时间:2023-12-01 12:40:35 25 4
gpt4 key购买 nike

我在我的应用程序中使用 v7-appcompat 作为库,我使用 IntelliJ-IDEA 并在项目目录中导入了 appcompat 库。自从我收到自动完成建议并且项目没有显示错误以来,该库已被集成,我正在使用主题“Theme.AppCompat.Light.DarkActionBar”,该主题也工作正常,当我在当实现“ActionBarActivity”的 Activity 被触发时,模拟器崩溃,实现“Activity”的其余 Activity 在实现的 AppCompat 主题下运行良好。

此 Activity 运行良好:

import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ShareActionProvider;


public class home extends Activity{
private ShareActionProvider mShareActionProvider;
Button btnPoetry;
Button btnProse;
Button btnBiography;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.home);

btnPoetry = (Button) findViewById(R.id.btnPoetry);
btnPoetry.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(home.this, poetry.class);
startActivity(i);
}
});
btnProse = (Button) findViewById(R.id.btnProse);
btnProse.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(home.this, prose.class);
startActivity(i);
}
});
btnBiography = (Button) findViewById(R.id.btnBiography);
btnBiography.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(home.this, biography.class);
startActivity(i);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.main_menu, menu);

MenuItem item = menu.findItem(R.id.menu_item_share);
mShareActionProvider = (ShareActionProvider) item.getActionProvider();
mShareActionProvider.setShareIntent(getDefaultIntent());
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.settings:
break;
case R.id.legend:
break;
case R.id.aboutUs:
break;
}
return super.onOptionsItemSelected(item);
}

private Intent getDefaultIntent(){
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT, "Extra Text");
return intent;
}
}

此类 Activity 会崩溃:

import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ShareActionProvider;


public class biography extends ActionBarActivity{
ShareActionProvider mShareActionProvider;
Button btnPictures;
Button btnLW;
Button btnLN;

@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.biography);

setUpActionBar();

btnPictures = (Button) findViewById(R.id.btnPictures);
btnPictures.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(biography.this, pictures.class);
startActivity(i);
}
});
btnLW = (Button) findViewById(R.id.btnLW);
btnLW.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(biography.this, literature.class);
startActivity(i);
}
});
btnLN = (Button) findViewById(R.id.btnLN);
btnLN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(biography.this, lifetimes.class);
startActivity(i);
}
});
}

private void setUpActionBar(){
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}else{
android.support.v7.app.ActionBar supportActionBar = getSupportActionBar();
supportActionBar.setDisplayHomeAsUpEnabled(true);
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.main_menu, menu);

MenuItem item = menu.findItem(R.id.menu_item_share);
mShareActionProvider = (ShareActionProvider) item.getActionProvider();
mShareActionProvider.setShareIntent(getDefaultIntent());
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.settings:
break;
case R.id.legend:
break;
case R.id.aboutUs:
break;
}
return super.onOptionsItemSelected(item);
}

private Intent getDefaultIntent(){
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT, "Extra Text");
return intent;
}

}

样式.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.BaseStyle" parent="@style/Theme.AppCompat.Light.DarkActionBar">

</style>
<style name="CustomButtonStyle">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_centerHorizontal">true</item>
<item name="android:textColor">#ffffff</item>
<item name="android:capitalize">characters</item>
<item name="android:typeface">sans</item>
<item name="android:shadowDx">1.2</item>
<item name="android:shadowDy">1.2</item>
<item name="android:shadowRadius">2</item>
<item name="android:gravity">center</item>
<item name="android:shadowColor">#000000</item>
<item name="android:color">#669900</item>
<item name="android:textSize">20sp</item>
</style>
<style name="CustomTextViewStyle">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">16sp</item>
<item name="android:textColor">#000000</item>
<item name="android:maxLines">80000</item>
<item name="android:paddingLeft">3dp</item>
<item name="android:paddingTop">5dp</item>
<item name="android:paddingRight">3dp</item>
</style>
</resources>

日志猫:

08-05 19:35:11.810    1153-1153/com.faizanbashir.zindarud W/dalvikvm﹕ VFY: unable to           resolve static field 1630 (ActionBarWindow) in Landroid/support/v7/appcompat/R$styleable;
08-05 19:35:11.810 1153-1153/com.faizanbashir.zindarud D/dalvikvm﹕ VFY: replacing opcode 0x62 at 0x0004
08-05 19:35:11.829 1153-1153/com.faizanbashir.zindarud D/AndroidRuntime﹕ Shutting down VM
08-05 19:35:11.829 1153-1153/com.faizanbashir.zindarud W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x409961f8)
08-05 19:35:11.859 1153-1153/com.faizanbashir.zindarud E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$styleable
at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:104)
at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:57)
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98)
at com.faizanbashir.zindarud.poetry.onCreate(poetry.java:24)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
at android.app.ActivityThread.access$600(ActivityThread.java:122)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4340)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.faizanbashir.zindarud"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="19" />
<application android:label="@string/app_name" android:icon="@drawable/allama" android:theme="@style/Theme.BaseStyle">
<activity android:name="main"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".home"
android:label="@string/app_name">
</activity>
<activity android:name=".poetry"
android:label="@string/Poetry">
</activity>
<activity android:name=".prose"
android:label="@string/Prose">
</activity>
<activity android:name=".persian"
android:label="@string/persianPoetry">
</activity>
<activity android:name=".urdu"
android:label="@string/urduPoetry">
</activity>
<activity android:name=".biography"
android:label="@string/Biography">
</activity>
<activity android:name=".pictures"
android:label="@string/Pictures">
</activity>
<activity android:name=".literature"
android:label="@string/LiteraryWorks">
</activity>
<activity android:name=".lifetimes"
android:label="@string/LN">
</activity>
</application>
</manifest>

最佳答案

确保执行以下操作 ( from Support Library Setup ):

Right-click the library project folder and select Build Path > Configure Build Path.

In the Order and Export tab, check the .jar files you just added to the build path, so they are available to projects that depend on this library project. For example, the appcompat project requires you to export both the android-support-v4.jar and android-support-v7-appcompat.jar files.

Uncheck Android Dependencies.

关于java - Android:扩展 ActionBarActivity 会使应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25142147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com