我正在尝试获取手机中的所有音乐文件:
为此,我正在使用:
String[] STAR = {"*"};
Uri allExternalSongUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";
Cursor cursor = getContentResolver().query(allExternalSongUri, STAR, selection, null, null);
if(cursor != null){
if(cursor.moveToFirst()){
do {
String songName = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
Log.i("name", songName);
} while (cursor.moveToNext());
}
cursor.close();
}
Run Code Online (Sandbox Code Playgroud)
但是上面的代码,除了获取音乐文件之外,还提取了一些额外的不必要的文件,如*sound_screen_on.mp3*(由其他应用程序安装和使用).
问题是我的原生Android音乐播放器没有列出和播放这些不必要的文件.
如何过滤这些文件.
我已经升级到Android Studio 0.5.9并且总是收到这些警告:
Configuration on demand is an incubating feature.
Relying on packaging to define the extension of the main artifact has been deprecated and is scheduled to be removed in Gradle 2.0
Run Code Online (Sandbox Code Playgroud)
我有什么关于它的吗?如果没有,我可以禁用它们吗?
在Java或Android中记录未处理异常的堆栈跟踪时(例如通过ACRA),通常会将堆栈跟踪视为普通长字符串.
现在,所有提供崩溃报告和分析的服务(例如Google Play Developer Console,Crashlytics)都将这些堆栈跟踪分组到独特的存储桶中.这显然很有用 - 否则,您的列表中可能会有数万个崩溃报告,但其中只有十几个可能是唯一的.
例:
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:200)
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
at java.util.concurrent.FutureTask.setException(FutureTask.java:125)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
at java.lang.Thread.run(Thread.java:1027)
Caused by: java.lang.ArrayIndexOutOfBoundsException
at com.my.package.MyClass.i(SourceFile:1059)
...
Run Code Online (Sandbox Code Playgroud)
上面的堆栈跟踪可能出现在多个变体中,例如,AsyncTask由于不同的平台版本,平台类可能会出现不同的行号.
为每个崩溃报告获取唯一标识符的最佳技术是什么?
很清楚的是,对于您发布的每个新应用程序版本,崩溃报告应该分开处理,因为编译的源代码不同.在ACRA中,您可以考虑使用该字段APP_VERSION_CODE.
但除此之外,您如何识别具有独特原因的报告?通过获取第一行并搜索第一次出现的自定义(非平台)类并查找文件和行号?
我最近切换到Android Studio/Gradle,我想知道如何在build.gradle脚本中配置ProGuard.我是Gradle的新手,但我认为,配置Proguard任务是个好主意(如Proguard项目文档中所述).
我想配置Proguard使用'printmapping'设置将映射保存在不同文件中,以用于不同的产品风格
task myProguardTask(type: proguard.gradle.ProGuardTask) {
printmapping file("test.txt")
}
Run Code Online (Sandbox Code Playgroud)
但它在执行任务时崩溃了
Gradle: Execution failed for task ':module:proguardFlavorVariant'.
> proguard.ConfigurationParser.<init>(Ljava/io/File;Ljava/util/Properties;)V
Run Code Online (Sandbox Code Playgroud)
在摇篮"android'-插件的更新版本,Proguard的似乎包括我想这可能是原因,为什么配置Proguard的任务Proguard的文件没有工作,上所述.但是我没有找到关于如何使用更新的android-gradle-plugin做这个主题的任何文档.
谢谢你的帮助!
android proguard gradle android-studio android-gradle-plugin
在CoordinatorLayout我的一个布局中加入新内容之后,我遇到了与Adviews重叠的问题FloatingActionButton.
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_scrollFlags="scroll|enterAlways" />
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_margin="@dimen/fab_margin"
android:src="@drawable/ic_done" />
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
资料来源: https ://github.com/chrisbanes/cheesesquare/blob/master/app/src/main/res/layout/include_list_viewpager.xml
如果我采用相同的布局并在AdView下面加入,FloatingActionButton则会导致FloatingActionButton不再使用SnackBars:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_scrollFlags="scroll|enterAlways" />
<android.support.design.widget.TabLayout …Run Code Online (Sandbox Code Playgroud) android admob floating-action-button android-snackbar android-coordinatorlayout
有没有关于Embarcadero的Delphi/cbuilder的下一个版本(2011)的信息?
是否存在指向与下一个Delphi/cbuilder相关的信息的链接,关于何时以及可能包含哪些内容?
我有一个gradle项目,它有java应用程序和android应用程序.
root/
build.gradle
settings.gradle
java1/
java2/
android1/
android2/
java3/
Run Code Online (Sandbox Code Playgroud)
等等
构建构建脚本的最佳实践是什么?我是一个完全的gradle新手,我正在将项目从maven迁移到gradle.
我想做点什么而不是做
configure(subprojects) {}
Run Code Online (Sandbox Code Playgroud)
应用插件和其他特定的东西.
如
configure(java1, java2, java3) { // java specifics }
configure(android1, android2) { // android specifics }
Run Code Online (Sandbox Code Playgroud)
我可能是以错误的方式接近这个.
更明确地说,我需要将插件java仅用于java项目,并将android插件应用于android项目.
我试图在android上以编程方式复制文本,在另一个问题上投票最多的回答提供了这些行,但是当使用它们时我得到错误:类需要API级别11(当前最小值为8):
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("label", "Text to copy");
clipboard.setPrimaryClip(clip);
Run Code Online (Sandbox Code Playgroud)
我直接从问题中复制了这些行.尝试
import android.content.ClipboardManager;我测试后import android.text.ClipboardManager;,但它也产生了一个错误The method setPrimaryClip(ClipData) is undefined for the type ClipboardManager加上关于ClipboardManager被弃用的警告.
我的应用程序支持Android 2.2(我认为是API 8),如何复制文本以便它适用于所有版本的android?
在Snackbar我的一些应用程序中实现新的后,我收到以下错误:
java.lang.ArrayIndexOutOfBoundsException: length=1; index=1 at
android.support.v4.widget.ViewDragHelper.shouldInterceptTouchEvent(SourceFile:1014) at
android.support.design.widget.SwipeDismissBehavior.onInterceptTouchEvent(SourceFile:188) at
android.support.design.widget.Snackbar$Behavior.onInterceptTouchEvent(SourceFile:659) at
android.support.design.widget.Snackbar$Behavior.onInterceptTouchEvent(SourceFile:641) at
android.support.design.widget.CoordinatorLayout.performIntercept(SourceFile:343) at
android.support.design.widget.CoordinatorLayout.onInterceptTouchEvent(SourceFile:376) at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1827) at
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2241) at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1946) at
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2241) at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1946) at
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2241) at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1946) at
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2241) at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1946) at
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2241) at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1946) at
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2241) at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1946) at
com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1968) at
com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1420) at
android.app.Activity.dispatchTouchEvent(Activity.java:2428) at
android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(SourceFile:59) at
android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(SourceFile:59) at
com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1916) at
android.view.View.dispatchPointerEvent(View.java:7475) at
android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3744) at
android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3672) at
android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4924) at
android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4884) at
android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5036) at
android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:179) at
android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method) at
android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:171) at
android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:5004) at
android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:5058) at …Run Code Online (Sandbox Code Playgroud) android android-design-library android-snackbar android-coordinatorlayout
如何迭代每个不同类型项目的测试结果并将其收集到一个报告中?
Root Project
|
|- Java Project
|- test task
|
|- Android Library Project (has Build Types)
|- testDebug task
|- testRelease task
|
|- Android application Project (has Product Flavors and Build Types)
|- testFreeDebug task
|- testFreeRelease task
|- testPaidDebug task
|- testPaidRelease task
Run Code Online (Sandbox Code Playgroud)
到目前为止我所拥有的:
这将聚合所有项目的所有测试结果:
task aggregateResults(type: Copy) {
outputs.upToDateWhen { false }
subprojects { project ->
from { project*.testResultsDir }
}
into { file("$rootDir/$buildDir/results") }
}
task testReport(type: TestReport) {
outputs.upToDateWhen { false } …Run Code Online (Sandbox Code Playgroud) android gradle test-reporting android-gradle-plugin android-productflavors