小编And*_*eky的帖子

将Android Studio更新到版本1.3.0后,我得到"NDK集成在当前插件中已弃用"错误

我在3天之前将Android Studio更新为1.3.0版.

在此之前,我可以使用NDK,现在我收到错误,如,

错误:(50,0)错误:当前插件中不推荐使用NDK集成.考虑尝试新的实验插件.有关详细信息,请参阅http://tools.android.com/tech-docs/new-build-system/gradle-experimental.在gradle.properties中设置"android.useDeprecatedNdk = true"以继续使用当前的NDK集成.

我在项目级别找不到文件gradle.property.

我该如何解决这个错误?

android deprecated android-ndk android-studio

88
推荐指数
1
解决办法
7万
查看次数

在支持设计库中找不到android.support.design.widget.Snackbar

我开发自己的库模块Snackbar.

这是我的Gradle文件:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'me.zhanghai.android.materialprogressbar:library:1.1.4'
    compile 'com.android.support:design:23.1.1'
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我已添加import com.android.support:design:23.1.1,但结果我收到错误:

错误:包android.support.design.R不存在

我怎么解决这个问题?

android android-support-library

45
推荐指数
5
解决办法
6万
查看次数

仅在Android而非iOS上使用"Volley"进行服务器请求超时

在我的一个应用程序中,我使用Googlevolley提供的服务器发送请求.

问题:超时和错误对象为空 onErrorResponse(VolleyError error)

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

1)首先我得到了null错误对象,所以使用下面的代码解决了它:

 @Override
 protected void deliverResponse(String response) {
    super.deliverResponse(response);
 }

 @Override
 public void deliverError(VolleyError error) {
     super.deliverError(error);
     DebugLog.e("deliverResponse", "getNetworkTimeMs : " + error.getNetworkTimeMs());
 }
Run Code Online (Sandbox Code Playgroud)

到目前为止,我得到了timeout当我得到错误对象时发生的事情null.

2)现在的应用是AndroidiOSweb,但timeout只针对发生Android.

要求的排球日志:

BasicNetwork.logSlowRequests: HTTP response for request
Run Code Online (Sandbox Code Playgroud)

编辑说明:

  1. 在服务器端开发的Web服务对于所有三个实例(Android,Web和iOS)都是相同的.

  2. Timeout 当有太多用户向服务器发出请求时发生.

  3. 我已经设定了2分钟的时间,但有时只有30秒的凌空抽射超时.

  4. 我有很多答案来改变服务器,但因为它是不可能所以任何其他解决方案请.

我还想补充一点,如果我能获得更多关于何时可以超时的超时的信息?

参考文献我经历过:

优化排球

HttpClient的,经常超时的-使用-WiFi的是持续的,细带-3G

long_xmlhttprequest_ajax_requests_timeout_on_android

编辑:

我还设置了重试政策如下:

request.setRetryPolicy(new DefaultRetryPolicy(DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 48,
                0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
Run Code Online (Sandbox Code Playgroud)

而且我也不想在连接超时时重试.

如何才能进行有效的服务调用,以解决问题timeout.

任何帮助都会得到满足.

谢谢.

android timeout http web android-volley

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

Android:autocompletetextview,建议列表显示在textview上方?

有没有人遇到过这个问题?

列表项显示在文本框上方而不是出现在它下面!

使用一些高分辨率屏幕,它显示正确:

在此输入图像描述

但它没有正确显示的低分辨率并不是那么低,例如,在galaxy spica(320x480px)中.我希望将键盘放在建议列表后面,当一个用户试图通过长按一下滚动时,它就会得到焦点.

我试过: android:windowSoftInputMode="stateHidden|adjustPan"在活动manifest.xml和所有其他组合中.仍然,它不起作用...我试图改变文本大小,项目大小,填充,整个autocompletetextview的最大高度,最大值下拉列表的高度,尝试了一个MultiAutoCompleteTextView,甚至试图将它嵌套在一个滚动视图中,没有.它发生是因为键盘"推"了文本视图上方的列表项所以没有键盘一切都会很好..

任何帮助将非常感激...

android autocompletetextview android-manifest android-layout

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

CheckedTextView的中心文本和复选标记

我实现的布局如下图所示:

在此输入图像描述

我使用的代码是:

 <CheckedTextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/big_green_btn_normal"
        android:checkMark="@drawable/check_circle"
        android:gravity="center_vertical"
        android:text="@string/register_tempClickStaffingAgreement" />
Run Code Online (Sandbox Code Playgroud)

这就是我想要的,如下图所示:

在此输入图像描述

分享一些想法来定制它,但不是自定义线性或任何其他布局..我想要一个自定义视图或checkedTextView ...任何帮助将不胜感激.

谢谢..!!

android textview android-custom-view checkedtextview

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

org.gradle.process.internal.ExecException: Process '命令以非零退出值 1 完成

例外

> Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'D:\Java\jdk1.8.0_45\bin\java.exe'' finished with non-zero exit value 1
Run Code Online (Sandbox Code Playgroud)

控制台日志

> FAILURE: Build failed with an exception.

>  * What went wrong:
Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command >'D:\Java\jdk1.8.0_45\bin\java.exe'' finished with non-zero exit value 1

>* Try:
>Run with --info or --debug option to get more log output.

> * Exception is:
> org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:dexDebug'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
    at …
Run Code Online (Sandbox Code Playgroud)

java android android-studio

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

TextToSpeech在Android中使用synthesizeToFile时需要花费太多时间

我使用下面的代码使用Android内置程序合成.txt文件到.mp3文件TTS Engine.

码:

 textToSpeech.synthesizeToFile(readFileText, utterParam, destinationFileName);

 textToSpeech.setOnUtteranceProgressListener(new UtteranceProgressListener() {
                @Override
                public void onStart(final String utteranceId) {
                    Log.e(TAG, "onStart...");
                }

                @Override
                public void onDone(final String utteranceId) {
                    Log.e(TAG, "onDone...");
                }

                @Override
                public void onError(String utteranceId) {
                    Log.e(TAG, "onError...");
                }
            });
Run Code Online (Sandbox Code Playgroud)

以上是示例代码.以下是应用程序执行流程:

  1. 从SD卡获取文件
  2. 合成文件到mp3
  3. 播放mp3文件

问题:文件合成完成后,我只能播放mp3文件.对于大小为1 mb的文件,大约需要1分钟.

我可以做些什么改进吗?

注意:我们需要使用MediaPlayer我们需要播放/暂停阅读器.

谢谢.

android text-to-speech speech-synthesis google-text-to-speech

5
推荐指数
1
解决办法
1136
查看次数

混淆 Android APK 中的资产

我们可以Proguard在 Android Studio 中使用混淆 android APK ,它只会混淆其中的java文件。

问题:我也想混淆存储在 Assets 文件夹中的文件。

解决方案:我们可以使用需要许可证的 Dexguard。

有人可以指出任何免费/开源替代方案吗?

obfuscation android android-studio android-proguard

5
推荐指数
1
解决办法
2418
查看次数

从“设置”屏幕授予用户更改权限

应用程序需要两个权限

  1. 读取手机状态
  2. 相机

应用程序有以下屏幕:

屏幕 A:Splash(根据权限状态处理屏幕导航)

屏幕 B:权限屏幕(如果用户未授予电话权限)

屏幕 C:条款和条件屏幕

启动时,App 会检查是否授予了手机权限。如果允许,应用程序将打开屏幕 C,否则它将保留在同一屏幕 B 上。

脚步:

  1. 打开应用程序 -> Splash -> 权限屏幕
  2. 单击“授予权限”-> 权限对话框-> 拒绝权限
  3. 点击“打开设置”
  4. 授予“相机”权限(不是手机权限)
  5. 点击设备的“返回”按钮并返回应用程序。
  6. 权限屏幕将显示为未授予“电话”权限。
  7. 再次重复步骤 #2 和 #3
  8. 现在删除“相机”权限并授予“手机”权限(因为我们更改了相机权限,应用程序进程将被终止并重新启动)。
  9. 重复第 5 步,将显示 Splash 和屏幕 C(条款和条件)。
  10. 再次点击“返回”按钮,将显示相同的屏幕 C(屏幕 C 在后堆栈中有两个实例)

我可以使用'CLEAR_TASK'和 ' CLEAR_TOP'标志和 startActivity,目的是知道当用户更改时我们的应用程序会发生什么,设置权限。

观察:

  1. 当用户授予权限时,我们的申请流程将不起作用。

  2. 当用户删除授予的权限时,Android 应用程序将终止并重新启动应用程序。(如果发生这种情况,那么为什么会有两个 T&C 屏幕实例?)

我在这里有点困惑!!

permissions android android-permissions

5
推荐指数
1
解决办法
2589
查看次数

在“runBlockingTest”中测试 Room 的事务查询

如何测试Room 的Transaction数据库操作?insertItineraries

错误

java.lang.IllegalStateException:此作业尚未完成

在 kotlinx.coroutines.JobSupport.getCompletionExceptionOrNull(JobSupport.kt:1188) 在 kotlinx.coroutines.test.TestBuildersKt.runBlockingTest(TestBuilders.kt:53) 在 kotlinx.coroutines.test.TestBuildersKt.runBlockingTest$default(TestBuilders.kt:45) ) 在 com.andigeeky.skyscannertest.db.ItineraryDaoTest.test 在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 插入带腿的行程(ItineraryDaoTest.kt:44) )

行程道

@Dao
@OpenForTesting
interface ItineraryDao {

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    suspend fun insertLegEntities(legs: List<LegEntity>)

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    suspend fun insertItineraryEntities(itineraries: List<ItineraryEntity>)

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    suspend fun insertItineraryLeg(itineraryLegEntities: List<ItineraryLegEntity>)

    @Transaction
    suspend fun insertItineraries(
        itineraries: List<ItineraryEntity>,
        legs: List<LegEntity>,
        itineraryLegEntities: List<ItineraryLegEntity>
    ){
        insertItineraryEntities(itineraries)
        insertLegEntities(legs)
        insertItineraryLeg(itineraryLegEntities)
    }

    @Transaction
    @Query("SELECT * FROM ItineraryEntity")
    fun getItineraryWithLegs(): LiveData<List<ItineraryWithLegs>>
}
Run Code Online (Sandbox Code Playgroud)

行程Dao测试

@ExperimentalCoroutinesApi
@RunWith(RobolectricTestRunner::class)
@Config(sdk = [Build.VERSION_CODES.P])
class …
Run Code Online (Sandbox Code Playgroud)

testing android unit-testing android-room kotlin-coroutines

5
推荐指数
1
解决办法
1838
查看次数