Android开发中那些问题(二)

一、Android使用Fragment嵌套Fragment时,会报No view found for id 0x7f080002for fragment SoundFragment。真是无语啊,为什么?

    无论是android.app.Fragment,还是android.support.v4.Fragment,千万不要使用getChildFragmentManager(),而是要用getFragmentManager()

二、Android使用Fragment嵌套Fragment时,会报

11-20 13:25:19.917: E/AndroidRuntime(4255): Activity has been destroyed

11-20 13:25:19.917: E/AndroidRuntime(4255):at android.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1333)

11-20 13:25:19.917: E/AndroidRuntime(4255): at android.app.BackStackRecord.commitInternal(BackStackRecord.java:607)

11-20 13:25:19.917: E/AndroidRuntime(4255): at android.app.BackStackRecord.commit(BackStackRecord.java:586)

    Transaction transaction=getFragmentManager().beginTransaction()必须放在点击事件中而不能放在外面,而且点击事件逻辑必须放在触发点击事件的Fragment里面,而不要放到Activity里面。因为你每次点击切换Fragment,transaction执行commit()后,必须再创建一个transaction。如:

public void onItemClick(AdapterView<?> arg0, View view, int index, long arg3) {
if (isTwoPane) {
Fragment fragment = null;
if (index == 0) {
fragment = new SoundFragment();
} else if (index == 1) {
fragment = new DisplayFragment();
}
getFragmentManager().beginTransaction().replace(R.id.details_layout, fragment).commit();

三、在运用GitHub上 侧滑菜单SlidingMenu开源项目时导入出现错误

      源代码可以从GitHub的https://github.com/jfeinstein10/slidingmenu下载。

  No resource found that matches the given name: attr 'homeAsUpIndicator'.

 No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar'.

是因为SlidingMenu的library需要依赖SherlockActionBar,可以到http://actionbarsherlock.com/download.html下载。需要把SlidingMenu里面的example依赖的ABS包去掉,因为SlidingMenu的library已经导入,它只用引用library就OK!但是还会报错,最常遇到的是jar mismatch! Fix your dependencies :引用的工程和自身工程以来的jar包版本不一致导致的冲突。确保SlidingMenu和ActionBarSherLock所使用的jar包版本一致如果使用到ActionBarSherLock的相关api,可能报找不到getSupportActionBar等ActionBarSherLock的方法。原因是使用ActionBarSherLock的Activity需继承于SherlockActivity。

    修改library项目中的以下文件。

          SlidingActivity.java、SlidingFragmentActivity.java、 SlidingPreferenceActivity.java

     修改前内容:

          SlidingActivity extends Activity

          SlidingFragmentActivity extends FragmentActivity

          SlidingPreferenceActivity extends PreferenceActivity

     修改后内容:

          SlidingActivity extends SherlockActivity

          SlidingFragmentActivity extends SherlockFragmentActivity

          SlidingPreferenceActivity extends SherlockPreferenceActivity

四、android:footerDividersEnabled="true"无效

你可调用addFooterView(View v, Object null, boolean true),第三个参数必须设为true

五、java如何判断json是否存在某个key

boolean b=object.isNull("signature")或boolean b=object.has("signature")

六:如何自定义ViewPagerIndicator?

   在Manifest中修改包含此ViewPagerIndicator的Activity的Theme

七:Activity切换动画为什么无效呢?

activity切换动画,考虑到了theme中引用style来实现,但是竟然无效,很是郁闷,几经波折,找到了原因,原来是style里面设置了

(android:windowIsTranslucent)影响(android:windowAnimationStyle),把它去掉,或者

<style name="animation_translucent_translate" parent="@android:style/Animation.Translucent"> 

八、Android Eclipse为什么打不开闪退呢?

把Eclipse原先的WorkSpace中的.metadata删除,或者把WorkSpace删除重新建立一个

九、JSON数据不规则key值该如何解析呢?(如,{"company",{"2013":"天诚星源","2014":"赛科世纪","2015":"筋斗祥云","2016":"金山"}}

List keyList=new ArrayList();
List valueList=new ArrayList();
JSONObject object = new JSONObject(result);
JSONObject jsonObject= object.getJSONObject("company");
Iterator iterator = jsonObject.keys();

while (iterator.hasNext()) {

String key = (String) iterator.next();
value = jsonObject.getString(key);
keyList.add(key);
valueList.add(value);
}

如果是键值对解析,则可用

JSONObject typeObj = sequentialsObj.optJSONObject("type");
Iterator<String> keys = typeObj.keys();
while (keys.hasNext()) {
   String key = keys.next();
   mShowSequentialsBean.setSequentialType(key, typeObj.optInt(key, 0));
}

十、javax.mail.AuthenticationFailedException?

你用Jmail发送邮件时,在又想的设置中开启了POP3/SMTP服务,这时输入邮箱密码就不对了,应该输入授权码。如  "fyxvinfyaajrhcbi"

十一、jni的使用中,如何生成.h文件?(有两种方法)

1.dos进入你的工程文件,如E:\Android\Note\JNI\TestJni>,然后输入javah -classpath bin/classes com.example.testjni.ManActivity,但是会报错:android jni 找不到android.app.Activity的类文件。

解决办法:无法访问android.app.Activity是说明没有引入android.jar包

可以看看java -h里面的具体说明。
其中有一个-bootclasspath参数 让他指向android.jar包
以下举个例子:javah -classpath bin/classes -bootclasspath D:\Environment\android-sdk-windows\android-sdk-windows\platforms\android-16\android.jar  -d jni com.jm.promedia.SecondActivity

2.java文件不用编译也可生成jni文件,因此,进入java文件源代码src目录,

执行javah -d ../jni com.xxx.aaa.BBActivity 

其中 -d:建立一个目录。

其中../jni :在上级目录的jni文件下生成.h头文件。

12、java.lang.IllegalStateException: Observer android.widget.AbsListView$AdapterDataSetObserver@2c6fc4b4 was not registered.

解决方法:把项目的Properties-->Project Build Target设为和android-support-v7一样,可参考:http://www.itnose.net/detail/6298009.html

13、Android中ViewPager中fragment内嵌套viewpager 子fragment内容不显示怎么处理

解决方法:子ViewPager的getFragmentManager()改为getChildFragmentManager()

14、AndroidRuntime (3391): java.lang.RuntimeException: Unable to instantiate   receiver com.jtd.service.Service$InsideReceiver:  java.lang.InstantiationException: can't instantiate class   com.jtd.service.Service$InsideReceiver; no empty   constructor 

解决方法:把InsideReceiver改为 static 内部类。在Manifest.xml中如下声明

<receiver android:name="com.jtd.service.Service$InsideReceiver" >  
         <intent-filter>  
                 <action android:name="com.jtd.service.Service.InsideReceiver" />          
</intent-filter>  
 </receiver>   

15、

MAT(Memory Analyzer Tool)时碰到的一个Bug:

 

An error has occurred. 
See the log file 

 

/Users/%username%/.eclipse/1899417313_macosx_cocoa_x86_64/configuration/1507391541586.log.

解决方法:Mac 直接把mat拖拽到应用程序就行了

 

 

 

 

 

 

展开阅读全文
©️2020 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值