好的,logcat正在显示系统日志,但它没有在我的华为Ascend上显示应用程序日志.如果我切换到另一台设备,例如我的Galaxy Nexus或Nexus 7,则会显示相同的应用程序(相同的APK甚至)日志.
华为Ascend正在运行Android 4.1.1,它在开发者选项中打开了USB调试功能.从命令行或IntelliJ运行logcat时会发生这种情况.而且我确保选择了正确的设备 - 事实上我一次只插入一个设备.我已经尝试重新启动adb,清除它的缓冲区等
我可以看到应用程序是从华为开始的,我甚至得到系统日志显示Activity已经启动.但与其他设备不同,我没有在Activity#onCreate(或其他任何地方)登录应用程序.
08-08 20:55:44.050: INFO/WindowManager(431): Switching to real app window: Window{41ae8780 au.com.xandar.wirelesstiming.timekeeper/au.com.xandar.wirelesstiming.timekeeper.TimeKeeperActivity paused=false}
08-08 20:55:44.180: INFO/ActivityManager(431): Displayed au.com.xandar.wirelesstiming.timekeeper/.TimeKeeperActivity: +387ms
Run Code Online (Sandbox Code Playgroud)
如何交付应用程序日志?
我是Android新手,我正在使用该Ical4j
库来解析ICS(Outlook日历)文件.
但是,当我在Eclipse中构建应用程序时,控制台中会多次出现以下警告:
[2010-07-22 15:58:31 - Google日历上传]警告:忽略没有关联的EnclosingMethod属性的匿名内部类的InnerClasses属性.(这个类可能是由一个破碎的编译器产生的.)
这有什么影响?我该如何解决这个问题?
从6月25日开始,使用广告的两个不相关的应用程序开始拥有此NPE
java.lang.NullPointerException
at zo.a(SourceFile:172)
at aeh.a(SourceFile:120)
at afw.run(SourceFile:14)
at afy.run(SourceFile:30)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Run Code Online (Sandbox Code Playgroud)
我认为这与谷歌播放服务更新有关.有人能帮我解决这个问题吗?
只是为了确认这个问题与播放服务有关,我已经设法从一个名为AdWorker的线程中从崩解剂中获取此信息:
thread
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor(Thread.java:1231)
at sun.misc.Unsafe.park(Unsafe.java:323)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:813)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:973)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1282)
at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207)
at zo.a(SourceFile:147)
at zo.a(SourceFile:170)
at aeh.a(SourceFile:120)
at afw.run(SourceFile:14)
at afy.run(SourceFile:30)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Run Code Online (Sandbox Code Playgroud)
它不是正确的地方......但是根本没有地方报告它们
它从7月1日开始翻倍的例外数量,现在几乎是6月27日的3倍.
来自谷歌的最后回复"我们知道这些崩溃并正在修复.我们希望在接下来的一两周内推出这些修复程序." (7月7日)
我注意到,当我在build.gradle文件中使用以下内容时,会自动添加以下权限
compile 'com.google.android.gms:play-services:7.5.0'
Run Code Online (Sandbox Code Playgroud)
早期版本的播放服务不会出现这种情况.有没有人有解决方案来删除这些不需要的权限?
我只使用广告功能(INTERNET和ACCESSNETWORK_STATE).我不需要LOCATION和USE_CREDENTIALS权限.如何删除这些不需要的权限?
我注意到'manifest-merger-xxx-debug-report.txt'文件包含以下内容
...<snipped bunch of other merges>
MERGED from com.google.android.gms:play-services-maps:7.5.0:22:5
android:name
ADDED from com.google.android.gms:play-services-maps:7.5.0:22:22
uses-permission#android.permission.ACCESS_COARSE_LOCATION
ADDED from com.google.android.gms:play-services-maps:7.5.0:23:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5
android:name
ADDED from com.google.android.gms:play-services-maps:7.5.0:23:22
uses-feature#0x00020000
ADDED from com.google.android.gms:play-services-maps:7.5.0:24:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5
android:glEsVersion
ADDED from com.google.android.gms:play-services-maps:7.5.0:25:8
android:required
ADDED from com.google.android.gms:play-services-maps:7.5.0:26:8
android:uses-permission#android.permission.READ_EXTERNAL_STORAGE
IMPLIED from AndroidManifest.xml:2:1 reason: com.google.android.gms.maps requested WRITE_EXTERNAL_STORAGE
uses-permission#android.permission.GET_ACCOUNTS
ADDED from com.google.android.gms:play-services-wallet:7.5.0:21:5
android:name
ADDED from com.google.android.gms:play-services-wallet:7.5.0:21:22
uses-permission#android.permission.USE_CREDENTIALS
ADDED from com.google.android.gms:play-services-wallet:7.5.0:22:5
android:name
ADDED from com.google.android.gms:play-services-wallet:7.5.0:22:22 …
Run Code Online (Sandbox Code Playgroud) android android-manifest admob android-permissions google-play-services
我最近在我的Android应用中引入了Google TagManager,以便将更改推送到app config,而无需重新部署应用.
但我得到的例子是:
java.lang.IllegalStateException: Results have already been set
at com.google.android.gms.common.internal.p.a(Unknown Source)
at com.google.android.gms.common.api.b$a.a(Unknown Source)
at com.google.android.gms.tagmanager.ed.a(Unknown Source)
at com.google.android.gms.tagmanager.ed.a(Unknown Source)
at com.google.android.gms.tagmanager.ed$b.a(Unknown Source)
at com.google.android.gms.tagmanager.ed$b.a(Unknown Source)
at com.google.android.gms.tagmanager.cj.c(Unknown Source)
at com.google.android.gms.tagmanager.ck.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Run Code Online (Sandbox Code Playgroud)
它们出现在Android 4.4到5.0.1的各种设备上
正如您所看到的,堆栈跟踪中没有我的应用程序的元素,我真的不知所措,我可以做什么(除了删除TagManager)以避免或减轻错误.
我找到了与GooglePlus登录相关的同一错误消息的一个引用,因此我认为它可能与Google Play服务库有关.
有人看过吗?有任何想法吗?
引发了Play-Games项目的问题:https: //code.google.com/p/play-games-platform/issues/detail?id = 209
android google-play-services google-tag-manager google-play-games
为了清楚起见,我已经阅读了关于"IllegalStateException:在onSaveInstanceState之后无法执行此操作"的十几个SO问题,我已经阅读了Alex Lockwood的博客文章http://www.androiddesignpatterns.com/2013/08/片段事务提交状态-loss.html
所以我不是盲目地问这个.
我有一个非常简单的用例案例,不涉及AsyncTask或任何后台处理.
我有一个包含按钮的片段.在按钮的onClickListener上,我创建了一个DialogFragment并显示它.
public final class OverviewFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.overview_fragment, container, false);
startNewGameButton = (Button) view.findViewById(R.id.buttonNewGame);
startNewGameButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final NewGameFragment dialogFrag = NewGameFragment.create(getApplication());
dialogFrag.show(getFragmentManager(), NewGameFragment.FRAGMENT_TAG);
}
});
}
Run Code Online (Sandbox Code Playgroud)
[NewGameFragment]
public final class NewGameFragment extends DialogFragment {
public static final String FRAGMENT_TAG = "NewGameFragment";
private static final String MESSAGE = "message";
public static NewGameFragment …
Run Code Online (Sandbox Code Playgroud) android android-lifecycle android-fragments android-dialogfragment android-nested-fragment
我在Samsung Galaxy Ace/Y/Pocket/Mini上遇到了以下崩溃.它在所有其他设备上运行良好.崩溃只发生在Android 2.3.5或2.3.6上
堆栈跟踪中没有引用我的代码.它似乎来自我没有定制的菜单布局.
我怀疑这是Galaxy OS的一个错误.但无法确认.
更重要的是,我能做些什么来避免或减轻这个错误?
android.view.InflateException: Binary XML file line #45: Error inflating class
at org.holoeverywhere.LayoutInflater._createView(SourceFile:382)
at org.holoeverywhere.LayoutInflater.onCreateView(SourceFile:594)
at org.holoeverywhere.LayoutInflater.createViewFromTag(SourceFile:444)
at org.holoeverywhere.LayoutInflater.rInflate(SourceFile:731)
at org.holoeverywhere.LayoutInflater.rInflate(SourceFile:734)
at org.holoeverywhere.LayoutInflater.inflate(SourceFile:538)
at org.holoeverywhere.LayoutInflater.inflate(SourceFile:488)
at com.android.internal.view.menu.MenuItemImpl.createItemView(MenuItemImpl.java:592)
at com.android.internal.view.menu.MenuItemImpl.getItemView(MenuItemImpl.java:577)
at com.android.internal.view.menu.MenuBuilder$MenuAdapter.getView(MenuBuilder.java:1173)
at android.widget.AbsListView.obtainView(AbsListView.java:1592)
at android.widget.ListView.measureHeightOfChildren(ListView.java:1251)
at android.widget.ListView.onMeasure(ListView.java:1162)
at android.view.View.measure(View.java:8313)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
at android.view.View.measure(View.java:8313)
at android.view.ViewRoot.performTraversals(ViewRoot.java:845)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1865)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at …
Run Code Online (Sandbox Code Playgroud) 我有一个与我的Android手机配对的蓝牙遥控快门.遥控快门就像一个蓝牙键盘.
我的应用程序愉快地处理由远程快门创建的键盘事件,但是远程快门在90秒后进入休眠状态,并且需要一键按下才能在发送下一次按键之前将其唤醒.
我需要一种机制来保持遥控快门处于唤醒状态,以便我不会丢失第一次按键.(是的我知道睡眠模式是为了节省能量,但我需要低延迟).
我尝试连接到设备作为客户端和服务器,希望我可以将OutputStream上的内容发送到设备.但我无法创建连接.
有没有办法以编程方式保持遥控快门清醒?
基于以下答案,我怀疑不是
为了完整起见,配对设备的详细信息如下:
我正在Jetty 9.0.4中运行Jersey 2.2 Servlet以便提供REST请求.
大多数情况下一切都很好并且要求得到服务,但我从未见过来自泽西岛的任何日志.而且我找不到任何doco表明我需要牺牲哪些鸡来实现泽西岛2.2
所以我的第一个问题是 - 我需要做些什么来让泽西岛生成一些日志.
当请求确实运行错误时(例如因为无法解析Json请求体),Jersey将抛出一个ContainerException,其中包含"无法从START_OBJECT令牌中反序列化java.util.ArrayList实例"等消息.此时它会记录传入的请求体是非常可爱的,所以我可以检查Json.我再也找不到当前doco中描述这样一只野兽的东西,虽然我确定有一只.无论如何,直到我解决上面的问题1,这是没有实际意义的.
所以我的第二个问题是如何记录传入的请求体(不中断请求).
web.xml中的Jersey Servlet配置如下所示:
<servlet >
<servlet-name>Jersey Servlet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>au.com.xandar.wirelesstiming.recorder.web.rest.JerseyApplication</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>org.glassfish.jersey.filter.LoggingFilter</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
Run Code Online (Sandbox Code Playgroud)
我的JerseyApplication是:
public final class JerseyApplication extends ResourceConfig {
public JerseyApplication() {
super(
//JacksonFeature.class // Switching on Jackson
// (My) JerseyLoggingFilter.class // Log requests using Jersey ContainerRequestFilter
MyApplicationEventListener.class // Log Requests using Jersey RequestEventListener
);
packages("au.com.xandar.wirelesstiming.recorder");
// Enable LoggingFilter & output entity.
// NB This does NOT generate any log. …
Run Code Online (Sandbox Code Playgroud) AppEngine使用JUL进行日志记录,我已经配置了logging.properties文件并引用了appengine-web.xml中的文件.
问题是AppEngine在控制台日志中显示数据的格式在每个日志行上大约180个字符后被截断.而且由于大部分内容都采用了方法和类名(包括包)和日期,因此没有太多实际的日志消息.
我试图以编程方式和通过logging.properties配置我自己的Formatter,但没有运气.
我意识到我可以通过slf4j,logback或log4j推送所有日志,但我相信这样做会导致所有这样的日志在AppEngine日志控制台中显示为stdout,它具有自己的详细风格.
有没有办法为AppEngine日志定义特定的格式,如果是这样的话?如果每个日志行没有被截断为180个字符,那就足够了.