小编kuz*_*ski的帖子

将 Gradle 和 Android Studio 更新到 3.5 后复制 Hamcrest 和 JUnit 类

更新到 Android Studio 3.5 gradle 后无法构建。原因是古老而众所周知的,但从来都不是整个构建失败的原因:Hamcrest 和 JUnit 的重复类。

在模块 hamcrest-core-1.1.jar (org.hamcrest:hamcrest-core:1.1) 和 junit-4.10.jar (junit:junit:4.10) 中发现重复的类 org.hamcrest.BaseMatcher

(还有更多的类)

关键是我从未听说过 Hamcrest 和 JUnit 大约在一年前甚至更长时间之前从我的项目中删除,正如您所看到的,错误描述中提到的 libs 版本也很旧。我能用这个做什么?

下面我将描述我所做的所有活动:

  1. 清理和重建项目,在项目中寻找 Hamcrest 和 JUnit 出现 - 什么都没有!

  2. 删除projecthome/.gradleprojecthome/.idea(结果 - 将它们的总大小从 67,5 MB 减少到 6 MB)。

    以下文件不断在“/.idea/libraries”文件夹中重新创建:

    Gradle__org_hamcrest_hamcrest_core_1_1_jar
    Gradle__junit_junit_4_10_jar
    
    Run Code Online (Sandbox Code Playgroud)
  3. 删除userhome/.gradle/caches(唯一的结果:将文件夹大小从 ~800 MB 减少到 323 MB)。

  4. 使 Android Studio 中的缓存/重启选项无效。

  5. 总共点 2-4。

  6. 降级到'com.android.tools.build:gradle:3.4.2'

一切都没有改变。请帮忙。

编辑:

org.gradle.execution.MultipleBuildFailures: Build completed with 1 failures.
at org.gradle.initialization.DefaultGradleLauncher$ExecuteTasks.run(DefaultGradleLauncher.java:386)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
at …
Run Code Online (Sandbox Code Playgroud)

android gradle android-studio android-gradle-plugin

10
推荐指数
2
解决办法
4204
查看次数

Android应用无法读取外部存储文件

我正在创建一个仅供私人使用的应用...那么那不是那么重要,请尊重您的时间:P

我要制作的是一个从数据库读取声音并播放声音的应用程序。我已经建立了数据库,并且能够从res / raw文件夹播放声音。但是,有数千个文件要播放,一些新文件将成为该应用程序的一部分,而其他文件将在以后删除。因此,添加一个简单文件使我每次都可以下载整个应用程序(〜1 GB)(或者我错了吗?)。相反,我想到了读取Excel文件并从SD卡播放声音的操作。但据我所知...

除了其特定于程序包的目录外,应用程序均不得写入(删除,修改...)外部存储。

我将文件放入/ storage / emulated / 0 / Android / data / my_package_folder / files文件夹。我读了很多话题,没有任何帮助。

Environment.MEDIA_MOUNTED.equals(extStorageState) //returns true
Environment.MEDIA_MOUNTED_READ_ONLY.equals(extStorageState) //returns false
Run Code Online (Sandbox Code Playgroud)

我尝试了几种创建新文件对象或使用mediaplayer播放声音的方法(正如我之前说过的,播放res / raw文件没有问题),但是file.exists总是返回false或声音不播放:

String filePath = getExternalFilesDir(null) + "/myfile.mp3"; //returns correct file path
File file = new File(filePath);
Run Code Online (Sandbox Code Playgroud)

要么

File file = new File(getExternalFilesDir(null).getPath(), "myfile.mp3");
Run Code Online (Sandbox Code Playgroud)

要么

MediaPlayer mp;
mp = MediaPlayer.create(this, Uri.parse(getExternalFilesDir(null).getPath() + "/myfile.mp3"));
Run Code Online (Sandbox Code Playgroud)

minSdkVersion设置为19,因此在清单中不需要该行:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

我已经包含了这一行,没有任何改变:

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
Run Code Online (Sandbox Code Playgroud)

我也尝试使用其他文件扩展名来做到这一点。同样,这里的解决方案也无济于事。我的手机是Samsung Galaxy Grand Prime(SM-G530FZ),Android v.5.0.2。请帮忙!:)

android file

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