小编lon*_*ngi的帖子

无法导入新的Gradle项目:找不到Build Tools修订版*.0.0

当我启动Android Studio并选择"New Project ..."并创建一个新项目时,我收到此弹出错误:

无法导入新的Gradle项目:找不到Build Tools修订版17.0.0

有关更多详细信息,请参阅IDE日志(帮助|显示日志)

我很乐意咨询IDE日志,但我甚至没有设法进入应用程序来做很多事情.我已多次浏览首选项以查看是否可以为Build Tools设置路径,但我找不到任何东西.我如何解决这个问题,或者如何在不打开项目的情况下进入应用程序,这样我至少可以看到日志?

java android gradle android-studio

96
推荐指数
6
解决办法
13万
查看次数

Android:如何获取RecyclerView的当前X偏移量?

我正在使用一个Scrollview无限的"Time Picker Carousel"并发现它不是最好的方法(最后一个问题)

现在,我找到了Recycler View,但是我无法在recyclerView的X方向上获得当前的滚动偏移量?(假设每个项目的宽度为100px,第二个项目只有50%可见,因此滚动偏移量为150px)

  • 所有项目具有相同的宽度,但在第一个项目之前,在最后一个项目之后存在一些差距
  • recyclerView.getScrollX()返回0(文档说:初始滚动值)
  • LayoutManagerfindFirstVisibleItemPosition,但我不能算出X与偏移

UPDATE

我刚刚找到了一种方法来跟踪X-Position,同时使用onScrolled回调更新值,但我更喜欢获取实际值而不是一直跟踪它!

private int overallXScroll = 0;
//...
mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);

            overallXScroll = overallXScroll + dx;

            Log.i("check","overallXScroll->" + overallXScroll);

        }
    });
Run Code Online (Sandbox Code Playgroud)

android scroll position android-recyclerview

51
推荐指数
5
解决办法
7万
查看次数

Android:如何检测单击自定义SearchView元素

我正在创建一个自定义SearchView,但到目前为止,如果用户点击searchView小部件,我没有找到(点击)事件或监听器.所以SearchView很接近,用户点击搜索图标(哪个监听器?!),SearchView被打开.见下图.我需要那个事件,因为我想在用户打开searchView后更改UI

在此输入图像描述

编辑: 到目前为止我尝试的是

  • setOnClickListener 到SearchView元素 - >但它只在SearchView打开时触发(第2张图片)

  • 搜索了SearchViewApi,但是没有听众那个动作(或者我是盲人?)

  • 尝试使用onWindowFocusChangedsearchView 解决方法,但由于searchView隐藏在某种youtube/facebook侧边栏中,这不起作用

有任何想法吗?我也附上了我的SearchView代码,但不认为代码是错误的.只是没有听众.顺便说一句:欢迎任何变通方法.但如果SearchView在开始时关闭,那就太好了!(如上图所示)

public class AmplifySearchView extends SearchView implements
        OnQueryTextListener, OnFocusChangeListener,
        OnCloseListener {

    private static final String DEBUG_TAG = "AmplifySeachView";

    private Context context;
    private DataBaseController datasource;
    private StationListView searchResultListView;
    private TextView noResultTextView;

    private Boolean searchStarted = false;

    public AmplifySearchView(Context context) {
        super(context);
        this.context = context;
    }

    public AmplifySearchView(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.context = context;
    }

    public void initSearchView(StationListView view, TextView noResultTextView) {
        this.searchResultListView = view; …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-searchmanager

32
推荐指数
4
解决办法
4万
查看次数

将Nexus上的Android升级到4.2.2后,Eclipse显示设备的目标未知?

我刚刚将手机升级到4.2.2,但现在我再也不能在eclipse中使用它了.

在此输入图像描述

我尝试重新启动设备,重置我的调试设置,但我不能再让它工作了.

我看到它已经是一个注册的问题.有一些新的安全增强功能,所以应该有一个对话框(见这里的底部),但该对话框不会出现.我手机上没有几个账号,问题中指出了这个账号.

任何建议?

编辑:看下面接受的答案,这应该涵盖所有情况.在我的情况下,有一些软件包丢失,但未在Android SDK Manager中显示.我刚刚在Android SDK Manager中找到了Packages - > Reload ......我认为这会自动发生

eclipse android

21
推荐指数
2
解决办法
2万
查看次数

Android 5.x:为什么Dialog.Builder会删除文本?

我有一个问题,Dialog.Builder按钮被切断. 我该如何解决这个问题,或者这是摩托罗拉设备的问题?

  • 缩短文本不是一个解决方案
  • 我期待相同的行为,如S5截图,按钮太长 - >按钮低于彼此

设备:摩托罗拉Moto G/OS:Android 5.0.2 在此输入图像描述

设备:Galaxy S5/OS:Android 5.0.2 在此输入图像描述

这是显示Dialog 的代码和主题

public void showDialog(final String title, final String message,
                       final OnClickListener onClickPositive,
                       final OnClickListener onCLickNegative, final String positiveButton,
                       final String negativeButton, final boolean cancelable) {
    if (!isFinishing()) {
        runOnUiThread(new Runnable() {

            @Override
            public void run() {

                if (dialog != null && dialog.isShowing()) {
                    dialog.cancel();
                }

                Builder builder;
                if (android.os.Build.VERSION.SDK_INT >= 14) {
                    builder = new AlertDialog.Builder(new ContextThemeWrapper(
                            MyActivity.this,
                            android.R.style.Theme_DeviceDefault_Light_Dialog));
                } …
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog

21
推荐指数
1
解决办法
1789
查看次数

Android:AAC +无线电流不支持MediaPlayer(Android 4.2.2/Shoucast链接)

我最近遇到了使用Android 传输AAC +无线电流的一些问题MediaPlayer.关于文档,应该支持在Android 4.1中流式传输AAC +.(测试设备是带有Android 4.2.2的Nexus 2)

我发现了一些相关的问题(请点击这里,这里这里),但它们主要与较旧的Android版本有关或在4.1版本发布之前的日期.我找到了AACPlayerAndroid图书馆,但你必须购买许可证..

如果我尝试流式传输AACPlus流,则MediaPlayer会抛出MediaPlayerError (1,-2147483648),这被定义为"不支持的媒体格式".但是,如果我在模拟器中启动相同的AAC + Stream,它工作正常!

到目前为止我尝试了什么:

  • 在模拟器中尝试相同的代码工作?!?(为什么..也许在本地机器上支持编解码器?)

  • 使用4.1或4.2测试另外两个设备也会失败

  • 设置AAC +流与手动标头和使用setDataSource(String path),这不起作用(更改http标头也失败)

  • 设置一个新的SimpleMediaPlayer项目 - >也失败了

  • 试图检查网络流量,如果Android设备被重定向到错误的网址.实际上我Charles使用a 连接设备Proxy,但只能监控Android浏览器.我仍然认为重定向是正确的!

这是我的Streaming.class的setDataSource的实现

public AmplifyMediaPlayer(PlayerStationObject playerStationObject, Context context) {
     super();
     this.setAudioStreamType(AudioManager.STREAM_MUSIC);
     this.mCurrentStationObject = playerStationObject;
     try {
        //AAC+ TestStream #1: NOT WORKING
        //Uri uri = Uri.parse("http://up-gc2.webnow.com.br/alpha.aac");

        //AAC+ TestStream #2: NOT WORKING   
        //Audio codec: 64 kbit/s 44.1 kHz AAC+, 128 …
Run Code Online (Sandbox Code Playgroud)

streaming android android-mediaplayer

13
推荐指数
1
解决办法
9535
查看次数

Android谷歌地图:如何获取当前显示在屏幕设备中的区域?

有没有办法获得当前区域的坐标,该坐标显示在设备上?

背景是,我们想要显示"附近"的地方,这些地方存储在我们自己的数据库中.所以,假设用户查看地图的以下剪辑:

在此输入图像描述

我们如何获得屏幕的经度/纬度(或屏幕中间的点以及覆盖所有内容的半径?).请记住,地图中心通常不是当前位置,因为用户可以移动卡的中心!

android google-maps coordinates

12
推荐指数
2
解决办法
1万
查看次数

Android:WebView提高了本地html文件的加载速度

有没有办法提高加载本地.html文件的速度WebView.该.html文件存储在/assets文件夹中.

正如您在视频中看到的(抱歉,链接已损坏!),TextView(红色beackground)在转换开始之前呈现,而WebView之后显示的文本.如何实现加载WebView与TextView一样快?

//current implementation
webView.setInitialScale(1);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);

webView.loadUrl("file:///android_asset/disclaimer.html");
Run Code Online (Sandbox Code Playgroud)

摘要

这是不可能的.我在这里尝试了所有评论并没有什么区别.

我问的原因是,我们有iOS和Android的应用程序,主要包括简单TextViewsImages.所以我们有了创建本地 html文件的想法,我们可以在两个应用程序中使用它们.在iOS这个作品就像一个魅力,但在Android我们无法摆脱加载时间,所以我总是有一个空白的屏幕,并在100-200ms之后出现内容.

我想WebView如果活动可见,Androids会开始渲染.这在在线模式下完全有意义,因为您不想加载几个html页面,用户在实际关注它们之前在后台新打开它们.但是,在脱机模式(存储在应用程序中的本地html文件assets)中,此行为是不必要的,但您无法更改它.

现在我们现在真的为什么phonegap&co糟透了.

仅供记录:最后,我使用了一个带有空LinearLayout容器的活动,您可以在其中以编程方式插入内容.每种样式(标题1,标题2,内容......)都有自己的布局xml文件

public void insertHeadline(int id){

    String text = getString(id);
    TextView headline = (TextView) inflater.inflate(R.layout.layout_text_headline, null, false);
    headline.setText(text);

    //add this TextView to the empty container
    myLinearLayoutContainerView.addView(headline);

}
Run Code Online (Sandbox Code Playgroud)

html performance android android-assets android-webview

11
推荐指数
3
解决办法
6368
查看次数

如何在 Android 设备上录制内部音频或录制 MediaPlayer 音频流?

我目前正在尝试录制MediaPlayer.

实际上我找到了一些博客文章,说由于安全/版权原因这是不可能的,但我找不到来自 Android/Google 文档的任何官方声明。此外,还有像 Mobizen 这样的屏幕截图应用程序可以记录内部音频(至少三星设备似乎可以工作)。

所以有人可以告诉,如果

  1. 官方不允许/支持内部音频?
  2. 它可以记录与流AudioRecorder这是在玩MediaPlayer

我不太确定我现在是否正在进入黑暗面?

我已经尝试回答第二个问题:

  • 录制不同MediaRecorder.AudioSource,但都录制麦克风
  • 找到逐字节记录,但这不适用于MediaPlayer

android android-mediaplayer android-audiorecord

11
推荐指数
1
解决办法
3831
查看次数

Retrofit或Jackson ObjectMapper将“ aId”属性映射为小写的“ aid”

我使用的是Jackson 2.9.2Retrofit 2.1.0一些POST与操作JSONArray作为HTML-Header参数。

API定义的值为aId。不管我怎么努力,我JSON property始终转换为小写(aid)。

我使用测试了相同的代码abId,并且可以正常工作...任何提示,我的配置错误或针对该属性名称的约定(?)?

//ObjectMapper initialization
ObjectMapper().disable(SerializationFeature.FAIL_ON_EMPTY_BEANS)
          .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)


//the data class
import com.fasterxml.jackson.annotation.JsonProperty

data class MyClass(
    @JsonProperty
    val aId: String? = null, //<-- not working
    @JsonProperty
    val abId: String? = null //working!
)

//Retrofit call 
import retrofit2.http.Body

@POST("log")
fun sendLog(@Body logs: List<MyClass>): Call<MyCall>

//JSON Result in HTML Header
[{  
  "aid":"some_value",  //should be "aId"
  "abId":"some_value"  //is correct
 }] …
Run Code Online (Sandbox Code Playgroud)

android json jackson retrofit

8
推荐指数
1
解决办法
114
查看次数