我最近在为客户开发的应用程序中发现了随机崩溃.该应用程序在3年后现在拥有约100,000名活跃用户.
我们已经看到了Nexus 4和5的崩溃,两者都是Android 4.4 KitKat.
我们无法在我们自己的运行4.4的Nexus 4和5上重现它.
我们通过我们的支持获得了客户.他告诉我们,在调用新活动时,每次都在同一个地方发生崩溃.他经营的是Dalvik,而不是ART.重置固件后,应用程序运行正常,无法再次重现!
我出于法律原因无法发布源代码或布局,但是有这个堆栈跟踪:
java.lang.RuntimeException: Unable to start activity ComponentInfo{xx.xxx.xxxxx.xxx.xxxxxx.prod/xx.xxx.xxxxx.xxx.PaymentsActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
at android.app.ActivityThread.access$700(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4998)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:126)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.view.View.sendAccessibilityEventUncheckedInternal(View.java:4938)
at android.view.View.sendAccessibilityEventUnchecked(View.java:4919)
at android.view.View$SendViewStateChangedAccessibilityEvent.run(View.java:19433)
at android.view.View$SendViewStateChangedAccessibilityEvent.runOrPost(View.java:19465)
at android.view.View.notifyViewAccessibilityStateChangedIfNeeded(View.java:7265)
at android.view.View.setFlags(View.java:8990)
at android.view.View.setVisibility(View.java:6020)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:859)
at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:547)
at android.view.LayoutInflater.parseInclude(Native Method)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:745)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native …
Run Code Online (Sandbox Code Playgroud) 我正在运行Android 4.4.2并启用了"Bluetooth HCI snoop log",如此处所述嗅探/记录您自己的Android蓝牙流量
打开和关闭蓝牙后,我重新启动了手机.我在预期的位置找不到日志文件:
$ adb pull /sdcard/btsnoop_hci.log
remote object '/sdcard/btsnoop_hci.log' does not exist
Run Code Online (Sandbox Code Playgroud)
我怎样才能到达btsnoop_hci.log?
我构建了一个应用程序,通过WebView播放YouTube iframe视频,并使用YouTube iframe api控制视频.
(我知道适用于Android的YouTube SDK可能更适合Android应用开发,但目前只有iframe api符合我们的需求)
我发现在Android 4.4 KitKat下运行时应用程序会随机崩溃.
这是Google Play控制台的完整崩溃日志:
Native crash at /system/lib/libc.so
in /system/lib/libc.so (tgkill+12), /system/lib/libc.so (pthread_kill+48)
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/lt02ltespr/lt02ltespr:4.4.2/KOT49H/T217SVPUBNH4:user/release-keys'
Revision: '9'
pid: 10404, tid: 10660, name: rbbb.myapp >>> com.kkkkrbbb.myapp <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
r0 00000000 r1 000029a4 r2 00000006 r3 00000000
r4 00000006 r5 00000000 r6 000029a4 r7 0000010c
r8 630b10d0 r9 578211e8 …
Run Code Online (Sandbox Code Playgroud) android android-webview android-youtube-api android-4.4-kitkat
我有一个应用程序,它有两个扩展的搜索建议提供程序,SearchRecentSuggestionsProvider
我已使用以下Intent
过滤器和元数据在清单文件中正确设置:
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable_tv" />
Run Code Online (Sandbox Code Playgroud)
可靠的资源包括android:includeInGlobalSearch="true"
,所以应该没问题.
我显然也有一个提供者:
<provider
android:name="com.miz.contentprovider.TvShowContentProvider"
android:authorities="com.miz.contentprovider.TvShowContentProvider"
android:exported="true" />
Run Code Online (Sandbox Code Playgroud)
这一切在Android 4.3中使用Google搜索应用程序都运行良好,但我刚刚将所有设备更新到Android 4.4,我无法再在我的应用程序中搜索内容.在操作系统更新之前工作的其他应用程序也是如此,即Google Play音乐.
我在XDA开发人员身上发现了一个线程,如果有帮助的话,也会提到这个:http://forum.xda-developers.com/showthread.php?p = 474272102
有谁知道发生了什么或如何解决?
更新:我可以确认它只发生在安装了Android 4.4的设备上.我使用最新的Google搜索更新在Android 4.3设备上进行了测试,并且按预期工作.看起来这是Google更新中的一个错误.
当我发布我的笔记应用程序Android 4.0 - 4.3时,我使用自定义操作栏颜色和自定义操作栏图标(而不是使用标准的明暗和黑暗操作栏).我想在Android 4.4上做到这一点,状态栏也将采用我在Action Bar中使用的自定义颜色(即#FFD060).有没有办法轻松更改我当前的styles.xml以允许4.4利用这个?
我的values-v19文件夹下的styles.xml如下:
<resources>
<style name="AppBaseTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBarTheme</item>
</style>
<style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#ffd060</item>
<item name="android:textColor">#fff</item>
<item name="android:icon">@drawable/action</item>
<item name="android:titleTextStyle">@style/MyTextAppearance</item>
</style>
<style name="MyTextAppearance" parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:icon">@drawable/action</item>
<item name="android:textColor">#ffffff</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
我试图实现:
<item name="android:windowTranslucentStatus">true</item>
Run Code Online (Sandbox Code Playgroud)
它会导致我的应用程序的内容向上移动,从状态栏区域开始并被操作栏覆盖.
我正在尝试利用新的KitKat半透明系统条,在我的应用程序的背景中获得全屏图像.
我在找出正确的设置以获得我想要的行为时遇到了问题.现在我有ViewPager
三个Fragment
s,每个RelativeLayout
包含一个ImageView
(用于背景图像)和一个TextView
用于内容.
我所追求的是让内容完全适合可用于交互的屏幕部分,并使图像占据屏幕的整个可见部分.
如果我只是android:Theme.Holo.Light.NoActionBar.TranslucentDecor
用作我的主题,它在纵向看起来很好,但导航栏与横向内容重叠(请参见下面的屏幕截图).
按照文档中的建议,我添加android:fitsSystemWindows = true
到我的主题,但这会产生一些奇怪的文物(见下文)
我怎样才能使它在第二个例子中表现得像,但看起来不错,没有视觉文物?
我想让一个活动进入IMMERSIVE模式并在它启动时隐藏顶部和底部系统栏.
在android开发者网站上,他们说我应该使用setSystemUiVisibility()
并提供SYSTEM_UI_FLAG_IMMERSIVE
和SYSTEM_UI_FLAG_HIDE_NAVIGATION
.
我怎么能OnCreate()
在活动的方法中这样做?我认为setSystemUiVisibility
Activity类中没有提供它,它应该在视图中发生.有解决方法吗?
UPDATE
确定根据门把我添加了以下行,但我没有看到任何更改,导航栏和按钮按钮仍然可见:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
}
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_IMMERSIVE);
}
//Rest of activity code
Run Code Online (Sandbox Code Playgroud) 随着android kitkat 4.4.2版本是针对writeaccess实施的新google策略,到目前为止我还不明白.
我在其他应用中阅读了很多关于这个问题的内容.他们得到"EACCES权限被拒绝".我的应用程序需要编写/解压缩zipfile,也写入sqlite数据库.
如何通过Android版本4.4.2 KITKAT解决此EACCES权限被拒绝的问题?
我使用了一个Activity的对话框主题,它在Android <= 4.3上工作正常但在最新的KitKat 4.4上没有.这是问题的截图:
缺少布局的顶部.你可以看到界限似乎被削减了.
我正在使用Android模拟器来测试应用程序,因此我不知道问题是由于虚拟机还是由于某些其他原因.
我想添加半透明的状态栏和导航到我的应用程序(对于kitkat),并在大多数地方它运作良好.
我有一个主题:
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowTranslucentStatus">true</item>
Run Code Online (Sandbox Code Playgroud)
在我的布局中我有 android:fitsSystemWindows="true"
对于正常活动,这很好,但我有两个麻烦的活动. - >内容显示在状态栏和我的操作栏后面.
其中一个是PreferenceActivity我通过添加修复它 findViewById(android.R.id.list).setFitsSystemWindows(true);
第二个是一个活动,ActionBar.NAVIGATION_MODE_TABS
在那里我找不到正确的setFitsSystemWindows(true)
呼叫目标.
我试过findViewById(android.R.id.content)
和findViewById(android.R.id.tabcontent)
.我还尝试将xml属性添加到我的片段的布局中但没有成功.