我有一个关于最新的Android Wear版本(5.0.2)的问题: 使用该版本debugging应用程序真的很痛苦,因为应用程序经常在启动时(或之后)直接崩溃。 启动的活动是多么复杂/简单并不重要。 通过语音命令启动活动增加了崩溃的可能性。 每次应用程序崩溃时,都可以在日志中find这些行( 编辑:将logging添加到活动生命周期方法中 ): 04-16 17:22:15.830 1736-1771/? I/ActivityManager﹕ START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x14000000 pkg=some.package.name cmp=some.package.name/.MainActivity} from uid 10003 on display 0 04-16 17:22:15.866 1422-1962/? D/mot_vr_audio_hw﹕ dsp_recognizer_enabled = true 04-16 17:22:15.866 1416-1416/? D/ADSPD﹕ Client cmd=0x0003, size=4 04-16 17:22:15.875 1422-1962/? E/audio_a2dp_hw﹕ adev_set_parameters: ERROR: set param called even when stream out is null 04-16 […]
我知道这个问题已经在这个论坛上以不同的格式被提出,但是没有任何答案被接受,或者我在那里find的答案都没有帮助我。 我正在使用原生android,HTML和Adboe的Flex SDK(没有任何像PhoneGap等框架,使用Android自己的WebView的简单代码)的混合应用程序。 这是我面临的问题: 当应用程序启动时,首先触发flex sdk的活动“AppEntry” ,这是一个空白的活动,它只是为flex SDK设置上下文和初始设置。 接下来,启动使用WebView加载HTML项目的本机MainActivity 。 在Android 4.0.x(ICS)上 ,甚至认为URL已加载(onPageFinished()被调用成功的URL ) ,webview变成空白(白色)。 这发生在第一次安装和启动应用程序后,停止应用程序(通过从最近的应用程序栏中删除),页面按预期方式加载。 像这样反复重新启动有时会重现问题,但频率不可预知。 有些事情需要考虑: 由于flex sdk约束,这些HTML文件不能直接存储在“/ assets”文件夹中,而是存储在资产文件夹中的目录结构。 问题只发生在冰淇淋三明治(我猜的已知问题) ! 我已经尝试过的东西: 硬件加速closures(开/关并不重要,两者都testing) 2。 WebSettings settings = webView.getSettings(); settings.setJavaScriptEnabled(true); settings.setUseWideViewPort(true); settings.setLoadWithOverviewMode(true); settings.setSupportMultipleWindows(true); settings.setJavaScriptCanOpenWindowsAutomatically(true); settings.setLoadsImagesAutomatically(true); settings.setDomStorageEnabled(true); settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS); settings.setSaveFormData(true); settings.setAllowFileAccess(true); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){ settings.setAllowContentAccess(true); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { settings.setAllowFileAccessFromFileURLs(true); settings.setAllowUniversalAccessFromFileURLs(true); } } settings.setAppCacheEnabled(true); settings.setJavaScriptCanOpenWindowsAutomatically(true); […]
我发布了我的应用程序的新版本,尽pipe它没有应用程序内function或结算权限,但是我的应用程序的Google Play页面显示该应用程序有一个0.50应用程序内购买项目。 这是因为几个月前,我正在使用应用内结算function。 对于我的内部testing,我上传了具有所需权限的testingapk并创build了应用内结算订阅。 我删除了testingapk,但控制台不允许我禁用或删除应用内结算项目。 我试图上传到alpha通道一个新的apk与计费权限,但它没有解决。 正如你在屏幕截图中看到的那样,button仍然显示为灰色。 因此,我的应用程序的用户现在会认为我要收取他们的一些function,当我不这样做。 该应用是完全免费的,但由于我的控制台中剩余的应用内商品,Google Play表示我的应用包含应用内购买。 更新:我仔细检查了当前发布的apk不包括com.android.vending.BILLING权限。 如何摆脱我的Google Play控制台中的应用内结算项目? 任何帮助将不胜感激! 更新: 我在这附近联系了Google,这是我得到的答复: 感谢您的回复。 我知道情况令人沮丧,我希望我可以帮忙,但是我们无法从应用中删除订阅产品。 只是为了澄清你的订阅设置: 我们目前不支持对订阅应用内产品进行testing,如本文所述: http : //developer.android.com/google/play/billing/billing_testing.html 您当前发布的Alpha版APK包含结算权限。 我真的希望有一种方法可以删除订阅,或者至less允许您将其从Play商店页面中隐藏,但是我们的系统目前不支持该function。 这是我们的产品团队意识到的,我们正在研究可能的解决scheme。 我已经将您的信息添加到讨论中,但是目前我没有预期的解决schemedate。 对于给您带来的不便,我们深表歉意,希望能尽快提供解决scheme。 提到的alpha APK是在检测到问题后上传的,并没有造成这个问题。
我创build了一个ListView的Android应用程序。 我已经添加了页眉和页脚到列表中。 但是,当添加分隔符/分隔符时,它还会在标题和第一个ListView项目之间创build一个空白空间。 它对上一个ListView项目和页脚也是一样的。 空白空间相当于所有ListView项目之间的分隔符的大小,不同之处在于它不绘制分隔符,只留下空白空间。 我以为我find了解决scheme的xml属性“页脚分隔符启用”和“标题分隔符启用”。 但是当它们设置为false时,它不会改变任何东西。 我什至尝试用编程方式设置它们 list.setFooterDividerEnabled(false); list.setHeaderDividerEnabled(false); 但它不起作用。 有什么办法解决这个问题? 我只是不想空的空间在那里,我想要的第一个项目正好适合标题(相同的页脚)。
Facebook,为什么你没有共享意图的图像和文字? 我试图使用标准的Android共享意图共享一个图像,和一些文字。 我的意图是build立正确的,我已经在那里形象了,我已经完成了交易的结束。 我的代码,让我告诉你: public void doShare() { File image = getShareFile(); Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); shareIntent.setType("*/*"); shareIntent.putExtra(Intent.EXTRA_SUBJECT, resultObject.getShareSubject()); shareIntent.putExtra(Intent.EXTRA_TEXT, resultObject.getShareText()); shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(image)); shareActionProvider.setShareIntent(shareIntent); } Facebook显示在将处理我的意图的应用程序列表,但它谎言! 当点击Facebook实际做一个分享它说: 请只附上照片或一个video。 为什么Facebook,为什么? 为什么你会出现一个可以处理我的意图的应用程序,然后让我看起来愚蠢的我的用户不处理意图? 你承诺Facebook。 我在这个网站和networking上看到了很多很多的线索。 有没有人得到这个工作,而不必使用他们的API?
我在使用Eclipse的Android JUnittestingtesting一个使用ActionBarActivity的应用程序时出现了问题,这个应用程序使用了android-support-v7-appcompat。 在模拟器或设备上运行时,似乎一切正常。 我尝试使用一个模拟应用程序在ActivityUnitTestCase和startActivity与ActionBarActivity和改变了值的母版主题-V11等,如在ActionBarCompatbuild议:java.lang.IllegalStateException:您需要使用一个Theme.AppCompat,但它仍然无法正常工作。 你需要使用一个Theme.AppCompat主题(或后代),这个活动也不会给出答案,也就是说,提问的人既没有在他的清单中指定的Theme.AppCompat(我也这么做),也没有真的想要扩展ActionBarActivity(我这样做)。 他的解决scheme是简单地扩展Activity。 我究竟做错了什么? 这是我得到的错误(Junit窗口中的Failure-Trace): java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:108) at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:57) at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98) at android.hello.HelloWorldActivity.onCreate(HelloWorldActivity.java:14) at android.app.Activity.performCreate(Activity.java:5104) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) at android.test.ActivityUnitTestCase.startActivity(ActivityUnitTestCase.java:158) at android.hello.test.HelloWorldActivityTest.setUp(HelloWorldActivityTest.java:26) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175) at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1661) HelloWorldActivity.java package android.hello; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; import android.app.Activity; import […]
我从Droid X和Droid Pro得到奇怪的崩溃报告。 android.content.res.Resources$NotFoundException: File res/drawable/zz_moto_actionbar_bkg.xml from drawable resource ID #0x10803a8 at android.content.res.Resources.loadDrawable(Resources.java:1735) at android.content.res.Resources.getDrawable(Resources.java:596) at android.view.View.setBackgroundResource(View.java:7542) at com.android.internal.app.AlertController.setBackground(AlertController.java:719) at com.android.internal.app.AlertController.setupView(AlertController.java:424) at com.android.internal.app.AlertController.installContent(AlertController.java:232) at android.app.AlertDialog.onCreate(AlertDialog.java:251) at android.app.Dialog.dispatchOnCreate(Dialog.java:307) at android.app.Dialog.show(Dialog.java:225) at android.app.AlertDialog$Builder.show(AlertDialog.java:802) at com.*******.a(SourceFile:320) at com.*******.onOptionsItemSelected(SourceFile:292) at android.app.Activity.onMenuItemSelected(Activity.java:2251) at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:809) at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:143) at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855) at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:553) at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122) at android.view.View$PerformClick.run(View.java:9089) at android.os.Handler.handleCallback(Handler.java:587) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:123) […]
我正在用Android Studio(AS)1.0.2进行debugging,在build.gradle中设置了compileSdkVersion 21。 当使用模拟器与API 21一切正常。 在具有API 19的设备上debugging时会出现问题。调用堆栈中的每一行(在AS中标记为“Frames”)都正确显示了与API 19匹配的函数名称,源文件和行号。但是,当我单击与其中一个框架源(例如Activity.java)相对应的行,AS不正确地打开并显示该文件的API 21版本而不是API 19版本。 在我的android sdk文件夹中,我有./sources/android-19和./sources/android-21 任何想法为什么AS显示文件的错误版本? 我尝试的东西(按顺序): 重置Android Studio(通过删除〜/ .AndroidStudio *) 将Android Studio更新到最新版本 在带有API 21的仿真器上运行 – AS显示文件的正确版本(21)。 将compileSdkVersion更改为19并在API 19设备上运行 – AS在调用堆栈中显示正确的行号,并在正确的行中打开正确的文件(API 19)。 将compileSdkVersion更改为19并在API 21仿真器上运行 – AS在调用堆栈中显示对应于API 21的行号(在我看来,这是正确的行为),但是当点击它时,AS错误地打开了API 19版本的文件而不是API 21版本。 总而言之,当单击调用堆栈AS中的一行时,在debugging会话期间打开由compileSdkVersion表示的文件版本,而不是由设备/仿真器使用的文件版本。
我要将我的Android项目从Ant转换为Gradle。 我的Eclipse工作区非常简单: Workspace MyApp MyApp-AndroidLibrary 当我在MyApp中添加build.gradle文件时,我想引用我的Android库项目: apply plugin: 'android' dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile project(':MyApp-AndroidLibrary') } 当我运行gradle构build时,出现了一个错误“Project with path”:MyApp-AndroidLibrary'在根项目中找不到',我为此search了一下,发现我需要在我的工作区中设置一个“settings.gradle”文件目录,添加 include ":MyApp" include ":MyApp-AndroidLibrary" 这看起来对我来说太糟糕了,为什么Gradle需要一个settings.gradle文件 ,为什么不提取我在依赖关系中定义的项目呢? 什么include真正的手段? 如果我在工作区中安装了附加应用程序和其他共享库,结构可能如下所示: Workspace App1 App2 Library1(Used by App1 & App2) Library2(Used only by App1) Library3(Used only by App2) 因为只有一个settings.gradle文件,我不得不将它们全部添加到settings.gradle中。 那味道不好。 是的,我可以重新组织结构,使Library2成为App1的子目录,而Library3成为App2的子目录,但是Library1呢? 对此有何评论?
我可以使用savedInstanceState()来保存删除一个片段时的状态,然后恢复当我从后面堆栈popup片段的状态? 当我从后端堆栈恢复片段时,savedInstanceState bundle始终为空。 现在,应用程序stream是:片段创build – >片段删除(添加到后面的堆栈) – >从后面的堆栈(savedInstanceState包是空的)恢复的片段。 这是相关的代码: public void onActivityCreated(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle bundle = getArguments(); Long playlistId = bundle.getLong(Constants.PLAYLIST_ID); int playlistItemId = bundle.getInt(Constants.PLAYLISTITEM_ID); if (savedInstanceState == null) { selectedVideoNumber = playlistItemId; } else { selectedVideoNumber = savedInstanceState.getInt("SELECTED_VIDEO"); } } public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt(Constants.SELECTED_VIDEO, selectedVideoNumber); } 我认为这个问题是, onSavedInstanceState()在被移除并被添加到后端堆栈时从不被调用。 如果我不能使用onsavedInstanceState(),是否有另一种方法来解决这个问题?