我是使用Android Studio的新手,我正在尝试在模拟器上安装Google Play应用.我已经安装了Google Repository和Google Play Services,以及一个Google APIs x86 Atom System Image从SDK管理器,我能够建立谷歌播放服务我的示例应用程序.
我现在想在我的模拟器上安装Google Play应用程序.如何才能做到这一点 ?任何建议或解决方案本身都将非常受欢迎.另外,非常感谢你的时间.
我想下载一个在ExoPlayer中流式传输的视频.
另外,甚至在使用ExoPlayer之前,我HttpURLConnection从本地存储提供的输入流中下载了一个文件并播放该文件.这没关系,但是它并没有解决我的同步流和缓存问题.
ExoPlayer还提供了一个缓存系统,这些系统似乎只适用于DASH或HLS流类型.我没有使用这些,并希望缓存mp4与ExtractorRendererBuilder.(这里有相当广泛的主题:https://github.com/google/ExoPlayer/issues/420).
DefaultHttpDataSource确实有暴露的api,HttpURLConnection但我不确定我是否正在重用流.以下是ExoPlayer中提供的示例代码.
@Override
public void buildRenderers(DemoPlayer player) {
Allocator allocator = new DefaultAllocator(BUFFER_SEGMENT_SIZE);
Handler mainHandler = player.getMainHandler();
// Build the video and audio renderers.
DefaultBandwidthMeter bandwidthMeter = new DefaultBandwidthMeter(mainHandler, null);
DataSource dataSource = new DefaultUriDataSource(context, bandwidthMeter,userAgent);
ExtractorSampleSource sampleSource = new ExtractorSampleSource(uri,dataSource,allocator,
BUFFER_SEGMENT_COUNT * BUFFER_SEGMENT_SIZE, mainHandler, player, 0);
MediaCodecVideoTrackRenderer videoRenderer = new MediaCodecVideoTrackRenderer(context,
sampleSource, MediaCodecSelector.DEFAULT, MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT, 5000,
mainHandler, player, 50);
MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource,
MediaCodecSelector.DEFAULT, null, true, …Run Code Online (Sandbox Code Playgroud) 我正在尝试在64位版本的Ubuntu 14.04上安装Android Studio.但是我的安装在此时停止:

怎么解决这个问题?任何建议或解决方案本身都将非常受欢迎.非常感谢您的宝贵时间.
编辑:当我认为这与64位版本的Ubuntu上缺少32位二进制文件有关时,我是否在正确的轨道上?我尝试以root身份登录重复安装过程,但问题仍然存在.我究竟做错了什么 ?是否有另一种安装平台工具的方法?另外,这是我的终端告诉我的:
[ 26263] ERROR - tRunWizard$SetupProgressStep$1 - platform-tools, tools and 7 more SDK components were not installed
com.android.tools.idea.welcome.WizardException: platform-tools, tools and 7 more SDK components were not installed
at com.android.tools.idea.welcome.InstallOperation.promptToRetry(InstallOperation.java:109)
at com.android.tools.idea.welcome.InstallComponentsOperation.perform(InstallComponentsOperation.java:80)
at com.android.tools.idea.welcome.InstallComponentsOperation.perform(InstallComponentsOperation.java:38)
at com.android.tools.idea.welcome.InstallOperation$1.compute(InstallOperation.java:80)
at com.android.tools.idea.welcome.InstallContext$Wrapper.run(InstallContext.java:127)
at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212)
at com.android.tools.idea.welcome.ProgressStep.run(ProgressStep.java:167)
at com.android.tools.idea.welcome.InstallContext.run(InstallContext.java:77)
at com.android.tools.idea.welcome.InstallOperation.execute(InstallOperation.java:72)
at com.android.tools.idea.welcome.InstallOperation$OperationChain.perform(InstallOperation.java:151)
at com.android.tools.idea.welcome.InstallOperation.execute(InstallOperation.java:68)
at com.android.tools.idea.welcome.InstallOperation$OperationChain.perform(InstallOperation.java:149)
at com.android.tools.idea.welcome.InstallOperation.execute(InstallOperation.java:68)
at com.android.tools.idea.welcome.InstallOperation$OperationChain.perform(InstallOperation.java:149)
at com.android.tools.idea.welcome.InstallOperation.execute(InstallOperation.java:68)
at com.android.tools.idea.welcome.InstallComponentsPath.runLongOperation(InstallComponentsPath.java:301)
at com.android.tools.idea.welcome.FirstRunWizard.doLongRunningOperation(FirstRunWizard.java:126)
at com.android.tools.idea.welcome.FirstRunWizard.access$000(FirstRunWizard.java:41)
at com.android.tools.idea.welcome.FirstRunWizard$SetupProgressStep$1.run(FirstRunWizard.java:160)
at com.android.tools.idea.welcome.FirstRunWizardHost$LongRunningOperationWrapper.run(FirstRunWizardHost.java:432)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:471)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178)
at …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用本教程来设置SearchView:https: //developer.android.com/training/search/setup.html
我创建了一个带有SearchView的菜单并配置了SearchView.但是,单击键盘上的"搜索"按钮或SearchView的提交按钮时,我的SearchResultActivity无法打开.
我还尝试按动作栏上的搜索小部件不会触发我的搜索活动,但我无法让SearchView打开第二个活动.有人可以帮忙吗?
这是我的菜单:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.sample.searchbarapplication.MainActivity">
<item
android:id="@+id/action_search"
android:orderInCategory="100"
android:title="@string/action_search"
android:icon="@drawable/ic_search_white_24dp"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="collapseActionView|ifRoom" />
</menu>
Run Code Online (Sandbox Code Playgroud)
search-configuration xml:
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="@string/search_hint" />
Run Code Online (Sandbox Code Playgroud)
表现:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sample.searchbarapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="android.app.default_searchable"
android:value=".MainActivity" />
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
<activity android:name=".SearchResultActivity"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
MainActivity在其工具栏中包含SearchView:
public …Run Code Online (Sandbox Code Playgroud) 如果这个问题听起来非常基本,请道歉.我有一个Activity异步网络回调.用户离开Activity后可以执行回调.
作为我想要使用的支票isFinishing()(我不能使用,isDestroyed()因为我的最低API级别是16而不是17 isDestroyed()需要).
我可以isFinishing()在回调中使用以确保我的逻辑仅在Activity未被销毁时执行吗?
更具体地说isFinishing(),finish()即使在调用之后调用销毁的Activity也会返回true onDestroy()?
我也看了一下源代码.这是isFinishing():
public boolean isFinishing() {
return mFinished;
}
Run Code Online (Sandbox Code Playgroud)
这里是finish(),其中变量设置为true:
/**
* Finishes the current activity and specifies whether to remove the task associated with this
* activity.
*/
private void finish(boolean finishTask) {
if (mParent == null) {
int resultCode;
Intent resultData;
synchronized (this) {
resultCode = mResultCode;
resultData = mResultData;
}
if (false) Log.v(TAG, "Finishing self: token=" …Run Code Online (Sandbox Code Playgroud) 我有一个FragmentActivity,可以包含用户想要的ListFragments.ListFragments在HorizontalScrollView内并排排列(在ActionBar中选择一个选项时).每个ListFragment项都包含TextView和Button.单击按钮可更改Button的ViewParent的背景颜色 - 包含Button和TextView的LinearLayout.
现在,单击每个ListFragment中的Button可更改其相应列表项的背景颜色,但是在未单击的列表项中滚动按钮时,其背景颜色也会更改.此行为是意外的,因为只有单击的项目需要通过其Button上的相应单击更改其背景颜色.
ListFragment的数据来自一个自定义的SimpleAdapter,它覆盖了getView(int position,View convertView,ViewGroup parent)方法,我将setOnClickListener附加到Button,单击时会更改其ViewParent的背景颜色.
我在这个问题上花了很多时间,但是我无法找到解决方案.有助于理解此行为的根本原因的解释非常有用.此外,欢迎任何有助于在点击时设置一个项目的背景颜色的指导.
以下是我的自定义Adapter MyCustomAdapter的代码,它扩展了SimpleAdapter:
package com.example.androidlistfragmenttest;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.graphics.Color;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.SimpleAdapter;
public class MyAdapter extends SimpleAdapter{
Context context;
public MyAdapter(Context context, List<? extends Map<String, ?>> data,
int resource, String[] from, int[] to) {
super(context, data, resource, from, to);
this.context = context;
}
@Override
public boolean areAllItemsEnabled() {
return false;
}
@Override
public boolean isEnabled(int position) { …Run Code Online (Sandbox Code Playgroud) 我是Android开发的新手,必须使用重复报警AlarmManager。这是我第一次有机会使用PendingIntent。但是,在阅读了文档(http://developer.android.com/reference/android/app/PendingIntent.html)之后,我对PendingIntent的真正含义感到困惑。
我的问题是:
Q1。PendingIntent“待定” 以什么方式?对此问题表示歉意,但我想对一种PendingIntent方法有一个直观的了解。
Q2。该文件说:
PendingIntent本身只是对系统维护的令牌的引用,该令牌描述了用于检索令牌的原始数据。这意味着,即使其拥有的应用程序的进程被杀死,PendingIntent本身也可以从已为其分配的其他进程中继续使用。如果创建的应用程序以后重新检索相同类型的PendingIntent(相同的操作,相同的Intent操作,数据,类别和组件以及相同的标志),则它将收到表示相同令牌的PendingIntent(如果该令牌仍然有效),并且可以因此调用cancel()将其删除。
如何,
引用由系统维护的描述原始数据的令牌
与我的代码有关吗?
pendingIntent = PendingIntent.getBroadcast(getApplicationContext(),0,photosIntent,0);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME,SystemClock.elapsedRealtime(),
10000, pendingIntent);
Run Code Online (Sandbox Code Playgroud)
Q3。我也不理解文档中的内容:
由于这种行为,重要的是要知道何时将两个Intent视为相同,以便检索PendingIntent。人们经常犯的一个错误是创建多个PendingIntent对象,它们的Intent仅在其“额外”内容中有所不同,期望每次都获得一个不同的PendingIntent。这不会发生。Intent中用于匹配的部分与Intent.filterEquals定义的部分相同。如果您使用与Intent.filterEquals等效的两个Intent对象,则它们将获得相同的PendingIntent。
什么是extra contents?这是否引用方法中的request code&flag参数getBroadcast(Context context, int requestCode, Intent intent, int flags)?
任何帮助,将不胜感激。我的在线搜索没有给我想要的答案。另外,非常感谢您的宝贵时间。
我有一个AsyncTask,它在doInBackground()方法中进行一些数字运算(在接下来的几行中有更多细节).操纵doInBackground()的数据是与ListView's适配器相关的数据(SimpleAdapter在我的例子中).处理适配器数据后我需要做的就是调用notifyDataSetChanged()并更新我的数据ListView.但是notifyDataSetChanged()在内部调用doInBackground()会显示"不幸'应用名称已停止工作"消息.我的错误堆栈显示了这个:
06-22 08:01:49.083:E/AndroidRuntime(9955):FATAL EXCEPTION:AsyncTask#2 06-22 08:01:49.083:E/AndroidRuntime(9955):java.lang.RuntimeException:执行doInBackground时发生错误()06-22 08:01:49.083:E/AndroidRuntime(9955):在android.os.AsyncTask $ 3.done(AsyncTask.java:299)06-22 08:01:49.083:E/AndroidRuntime(9955): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)06-22 08:01:49.083:E/AndroidRuntime(9955):at java.util.concurrent.FutureTask.setException(FutureTask.java:219) 06-22 08:01:49.083:E/AndroidRuntime(9955):at java.util.concurrent.FutureTask.run(FutureTask.java:239)06-22 08:01:49.083:E/AndroidRuntime(9955):at android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:230)06-22 08:01:49.083:E/AndroidRuntime(9955):at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 06-22 08:01:49.083:E/AndroidRuntime(9955):at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:573)06-22 08:01:49.083:E/AndroidRuntime(9955):at java.lang.Thread.run(Thread.java:838)06-22 08:01:49.083:E/AndroidRuntime(9955):引起:android.view.ViewRootImpl $ CalledFromWrongThreadException :只有创建视图层次结构的原始线程才能触及其视图.
最后一行
06-22 08:01:49.083:E/AndroidRuntime(9955):引起:android.view.ViewRootImpl $ CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触及其视图.
给我调试所需的信息.我通过调用解决了这个问题notifyDataSetChanged(),从onPostExecute()但我还是不明白是怎么方法实际工作.我的问题是:
Q1.notifyDataSetChanged()实际上如何更新UI?
Q2.notifyDataSetChanged()UI线程和UI线程之间有什么联系?
Q3.有没有notifyDataSetChanged()可以在工作线程上调用的方法?
我是Android的初学者,对这些基本问题的任何帮助都将非常感激.我的互联网搜索没有给我我想要的答案.也非常感谢你的时间.
我ListFragment的数据由自定义适配器(SimpleAdapter在我的情况下)填充.我notifyDataSetChanged()在课堂上使用扩展时遇到了问题ListFragment.经过大量的浏览和之后的几个(有用的)Stack Overflow帖子:
listview没有使用notifydatasetchanged()调用进行更新
在notifyDataSetChanged之后Android ListView没有刷新
从BaseAdapter调用notifyDataSetChanged时,ListView不会更新
我知道松散(并且非常不推荐)的解决方法是使用重新设置适配器setListAdapter().但是我现在也面临着这个问题.
文档http://developer.android.com/reference/android/app/ListFragment.html#setListAdapter(android.widget.ListAdapter)提到了setListAdapter()
提供列表视图的光标.
但我还是有一些问题.
Q1.使用setListAdapter()"指向"同一适配器实例多次初始化适配器?
Q2.当使用setListAdapter()多次设置适配器时,调用getListAdapter()然后调用notifyDataSetChanged()时会发生什么?
Q3.这个问题基于Q2的假设 - 当notifyDataSetChanged()多次设置适配器时调用,哪些适配器实例(这部分是假设),如果它们存在'实际上是通知变更?
我是Android的初学者,我相信有一些我不理解的细微差别.如果你能澄清这些问题,我将非常感激.也非常感谢你的时间.
在Lollipop之前的Android版本中,有没有办法让开关的拇指高度大于轨道高度?
我本质上是试图在Kitkat中创建一个类似材料设计的开关小部件(和旧版本一样 - 这里的问题是默认情况下拇指'适合'在轨道内).我已经在这方面工作了很长一段时间,但我似乎无法达到正确的设计.
我按照这个SO帖子上的解决方案:如何更改Switch Widget的大小.
任何建议或解决方案将是最受欢迎的.