但是我看了这个问题,它并没有帮助解决我的问题:
我在我的应用程序中使用 ActionBarSherlock(版本 4.4)以兼容旧版本。我的应用程序在 4.1.2 上运行完美,但在 2.3.3 上崩溃。该应用程序一直运行到 mDrawerLayout.closeDrawer(mDrawerList); 点,然后崩溃。我无法弄清楚是什么导致它在旧版本上崩溃。我有一种感觉,这是因为它试图使用该版本中不存在的东西,但是,我无法确定它在使用什么。有没有人看到任何似乎错误的代码?
logcat 中的错误:
引起:android.content.res.Resources$NotFoundException:资源不是 Drawable(颜色或路径):TypedValue{t=0x2/d=0x10102fd a=-1}
Logcat 错误
08-15 21:01:04.967: E/AndroidRuntime(789): FATAL EXCEPTION: main
08-15 21:01:04.967: E/AndroidRuntime(789): android.view.InflateException: Binary XML file line #17: Error inflating class <unknown>
08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.LayoutInflater.createView(LayoutInflater.java:518)
08-15 21:01:04.967: E/AndroidRuntime(789): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.LayoutInflater.inflate(LayoutInflater.java:386)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:332)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.AbsListView.obtainView(AbsListView.java:1430)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.ListView.makeAndAddView(ListView.java:1745)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.ListView.fillDown(ListView.java:670)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.ListView.fillFromTop(ListView.java:727)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.ListView.layoutChildren(ListView.java:1598)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.AbsListView.onLayout(AbsListView.java:1260)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.View.layout(View.java:7175)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:702)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.View.layout(View.java:7175)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.View.layout(View.java:7175)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.LinearLayout.onLayout(LinearLayout.java:1047)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.View.layout(View.java:7175)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.View.layout(View.java:7175)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.View.layout(View.java:7175)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.ViewRoot.performTraversals(ViewRoot.java:1140)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.os.Handler.dispatchMessage(Handler.java:99)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.os.Looper.loop(Looper.java:123)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.app.ActivityThread.main(ActivityThread.java:3683)
08-15 21:01:04.967: E/AndroidRuntime(789): at java.lang.reflect.Method.invokeNative(Native Method)
08-15 21:01:04.967: E/AndroidRuntime(789): at java.lang.reflect.Method.invoke(Method.java:507)
08-15 21:01:04.967: E/AndroidRuntime(789): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-15 21:01:04.967: E/AndroidRuntime(789): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-15 21:01:04.967: E/AndroidRuntime(789): at dalvik.system.NativeStart.main(Native Method)
08-15 21:01:04.967: E/AndroidRuntime(789): Caused by: java.lang.reflect.InvocationTargetException
08-15 21:01:04.967: E/AndroidRuntime(789): at java.lang.reflect.Constructor.constructNative(Native Method)
08-15 21:01:04.967: E/AndroidRuntime(789): at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.LayoutInflater.createView(LayoutInflater.java:505)
08-15 21:01:04.967: E/AndroidRuntime(789): ... 35 more
08-15 21:01:04.967: E/AndroidRuntime(789): Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x2/d=0x10102fd a=-1}
08-15 21:01:04.967: E/AndroidRuntime(789): at android.content.res.Resources.loadDrawable(Resources.java:1681)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.View.<init>(View.java:1951)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.TextView.<init>(TextView.java:344)
08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.TextView.<init>(TextView.java:337)
08-15 21:01:04.967: E/AndroidRuntime(789): ... 38 more
值文件夹中的 styles.xml:
<resources>
<style name="AppBaseTheme" parent="Theme.Sherlock.Light.DarkActionBar">
</style>
<style name="AppTheme" parent="AppBaseTheme">
</style>
</resources>
Java 文件
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
setTheme(R.style.Theme_Sherlock);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG,"Set Content View");
mTitle = (String) getTitle();
ChemTitles = getResources().getStringArray(R.array.chemistrycalcstrings);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
mDrawerList.setAdapter(new ArrayAdapter<String>(this,
R.layout.drawer_list_item, ChemTitles));
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Log.d(TAG,"Set Display Home");
getSupportActionBar().setHomeButtonEnabled(true);
Log.d(TAG,"Set Home Button");
Log.d(TAG,"Setting ActbarDrawerToggle");
mDrawerToggle = new ActionBarDrawerToggle(
this,
mDrawerLayout,
R.drawable.ic_drawer,
R.string.drawer_open,
R.string.drawer_close
) {
public void onDrawerClosed(View view){
getSupportActionBar().setTitle(mTitle);
getSherlock().dispatchInvalidateOptionsMenu();
Log.d(TAG,"Drawer CLosing");
}
public void onDrawerOpened(View drawerView){
getSupportActionBar().setTitle(mDrawerTitle);
getSherlock().dispatchInvalidateOptionsMenu();
Log.d(TAG,"Drawer Opening");
}
};
Log.d(TAG,"Set ActbarDrawerToggle");
mDrawerLayout.setDrawerListener(mDrawerToggle);
Log.d(TAG,"Set ActbarDrawerToggle Listener");
if (savedInstanceState == null){
selectItem(0);
}
}
private void selectItem(int position){
SherlockFragment frag = new TestFrament();
Bundle args = new Bundle();
args.putInt(TestFrament.ITEM_SEL, position);
frag.setArguments(args);
getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, frag).commit();
mDrawerList.setItemChecked(position, true);
setTitle(ChemTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
}
编辑/更新
我检查并注释掉了涉及 ListView mDrawerList 的所有部分,并且应用程序立即启动并带有一个可用的操作栏,只是抽屉中没有 ListView 。
布局activity_main.xml
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- As the main content view, the view below consumes the entire
space available using match_parent in both dimensions. -->
<LinearLayout
android:id="@+id/content_frame"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- android:layout_gravity="start" tells DrawerLayout to treat
this as a sliding drawer on the left side for left-to-right
languages and on the right side for right-to-left languages.
The drawer is given a fixed width in dp and extends the full height of
the container. A solid background is used for contrast
with the content view. -->
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#111"/>
</android.support.v4.widget.DrawerLayout>
drawer_list_item.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:gravity="center_vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:textColor="#fff"
android:background="?android:attr/activatedBackgroundIndicator"
android:minHeight="?android:attr/listPreferredItemHeightSmall"/>
test_fragment_layout.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragTextSherlock"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:gravity="center"
android:padding="32dp" />
测试 fragment .java
public class TestFrament extends SherlockFragment {
public static final String ITEM_SEL = "item_selected";
private TextView fragtv;
public TestFrament() {
// Empty constructor required for fragment subclasses
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.test_fragment_layout, container, false);
int i = getArguments().getInt(ITEM_SEL);
fragtv = (TextView) rootView.findViewById(R.id.fragTextSherlock);
fragtv.setText(String.valueOf(i));
return rootView;
}
}
最佳答案
问题是编译器没有告诉我我使用的项目不是兼容性的一部分并且在 2.3.3 中不可用
看看我必须删除的行:
drawer_list_item.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall" <-Removed
android:gravity="center_vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:textColor="#fff"
android:background="?android:attr/activatedBackgroundIndicator" <-Removed
android:minHeight="?android:attr/listPreferredItemHeightSmall"/> <-Removed
关于android - 找不到资源,没有丢失项目的标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18278386/
我好像记得Lua有类似Ruby的method_missing的东西。还是我记错了? 最佳答案 表的metatable的__index和__newindex可以用于与Ruby的method_missing相同的效果。 关于ruby-难道Lua没有和Ruby的method_missing相媲美的东西吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7732154/
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
大家好!我想知道Ruby中未使用语法ClassName.method_name调用的方法是如何工作的。我头脑中的一些是puts、print、gets、chomp。可以在不使用点运算符的情况下调用这些方法。为什么是这样?他们来自哪里?我怎样才能看到这些方法的完整列表? 最佳答案 Kernel中的所有方法都可用于Object类的所有对象或从Object派生的任何类。您可以使用Kernel.instance_methods列出它们。 关于没有类的Ruby方法?,我们在StackOverflow
我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle
我在Rails应用程序中使用CarrierWave/Fog将视频上传到AmazonS3。有没有办法判断上传的进度,让我可以显示上传进度如何? 最佳答案 CarrierWave和Fog本身没有这种功能;你需要一个前端uploader来显示进度。当我不得不解决这个问题时,我使用了jQueryfileupload因为我的堆栈中已经有jQuery。甚至还有apostonCarrierWaveintegration因此您只需按照那里的说明操作即可获得适用于您的应用的进度条。 关于ruby-on-r
如何在Ruby中获取BasicObject实例的类名?例如,假设我有这个:classMyObjectSystem我怎样才能使这段代码成功?编辑:我发现Object的实例方法class被定义为returnrb_class_real(CLASS_OF(obj));。有什么方法可以从Ruby中使用它? 最佳答案 我花了一些时间研究irb并想出了这个:classBasicObjectdefclassklass=class这将为任何从BasicObject继承的对象提供一个#class您可以调用的方法。编辑评论中要求的进一步解释:假设你有对象
我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions
我在非Rails项目中使用ActiveRecord。在Rails中,我可以这样做:config.time_zone='EasternTime(US&Canada)'config.active_record.default_timezone='EasternTime(US&Canada)'但如果我不使用rails,我该如何设置时区? 最佳答案 ActiveRecord::Base.default_timezone='EasternTime(US&Canada)' 关于ruby-没有轨道的A