当前位置: 首页 > 知识库问答 >
问题:

未找到可提取的资源,但它们存在于可提取文件夹中

金承嗣
2023-03-14

我在一个android应用程序上工作了大约2个月。几乎每次我创建自定义drawable,当我试图构建项目时,我都会遇到Android资源链接失败错误,之后,Android Studio无法找到drawables的名称。

我的解决方案是将这些可抽件移出项目的某个地方,然后在出错后重新构建应用程序。我再次将可抽件移回项目中,当我重新构建apk时,再也没有错误了,我可以构建、运行、甚至生成apk,这些可抽件工作得非常好。但是现在我的项目完成了,我想生成签名的apk,但没有办法,我可以摆脱Android资源链接失败的错误。我把我的一些抽屉代码放在下面。

retry_btn.xml:

<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:drawable="@drawable/register_btn_disabled"/>
    <item android:state_pressed="true" android:drawable="@drawable/register_btn_clicked"/>
    <item android:state_pressed="false" android:drawable="@drawable/register_btn_normal"/>
    <item android:drawable="@drawable/register_btn_normal"/>
</selector>

story_box.xml:

<?xml version="1.0" encoding="utf-8"?>
    <shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:color="#70707070" android:width="1dp"/>
</shape>

table_border.xml:

<?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
        <item>
            <shape
        android:shape="rectangle">
                <stroke android:width="1dp" android:color="#333333" />
                <solid android:color="#EEEEEE" />
        </shape>
    </item>
</layer-list>

命令:C:\users\myuser.gradle\caches\transforms-1\files-1.1\aapt2-3.2.1-4818971-windows.jar\ac5e520165d725772f5386c054776c5\aapt2-3.2.1-4818971-windows\aapt2.exe链接-i\
C:\users\myuser\appdata\local\androd\sdk\platforms\android-28\android.jar\
--manifest\
C:\users\myuser\androidstudioprojects\myappname\app\build\merged_manifests\release\processreleasemanifest\merged\androidmanifest.xml\
-O\
C:\users\myuser\androidstudioprojects\myappname\app\build\medroidstudioprojects\release\processed_resele\release\rescele\resces-release.ap_\
-r\
@C:\users\myuser\androidstudioprojects\myappname\app\br\br\recesces-release.ap_\br\br\recesceles\release\release\release\resces-release.ap_\br\princrement\resces\\build\generated\not_namespaced_r_class_sources\releaseResources\r\
--proguard\
c:\users\myuser\androidstudioprojects\myappname\app\build\intermediates\proguard-rules\release\aapt_rules.txt\
--custom-package\
uk.myappname.www.myappname\
-0\
apk\
--output-text-symbols\
c:\users\myuser\androidstudioprojects\myappname\app\build\medroidstudioprojects\myappname\release\r.txt\
--no-version-vectors
守护进程:aapt2aapt2-3.2.1-4818971-Windows守护进程#0

这是我的gradle档案:

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "uk.MyAppName.www.MyAppName"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
//            minifyEnabled false
//            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    productFlavors {
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:exifinterface:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.android.support:design:28.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'org.jetbrains.anko:anko-commons:0.10.4'
    implementation 'com.squareup.picasso:picasso:2.71828'
    implementation 'com.google.android.exoplayer:exoplayer:2.9.1'
}

共有1个答案

闻人志
2023-03-14

对于所有面临这个问题的人,只需将您的drawable文件夹更改为drawable-v(您的sdk版本),希望这个答案能解决您的问题。或者添加另一个具有提到的名称的可抽吸目录,并简单地将您的可抽吸文件复制到那里。

 类似资料:
  • 在最近升级了我的android工作室后,我不能再构建我的项目了。 重建、清理项目和使缓存无效都不起作用! 添加android.enableaapt2=false行并不能解决真正的问题,因此我宁愿找到问题的根源。 下面显示了我的gradle.build文件:

  • res\drawable\mylayerlistdrawable.xml ----------------------------------------------------------------------------------- 最终答案 在api 21之前的xml可提取资源中,我们不能使用?attr。由aapt在编译时创建的可提取资源。运行时用于动态连接的Attr资源。 解决方案是为

  • QuestionLibrary.java mainactivity.java

  • 问题内容: 我知道如何使用读取带有的目录,但是对于我的特殊用例,我需要一个。我需要一个专门的原因是因为我需要通过调用从它获取对象。 这是我到目前为止的代码,它从中读取数据(在我的情况下为原语列表): 我曾尝试通过创建一个,但这只会导致: 有没有一种方法,我可以得到一个在目录中? 问题答案: 您可以像这样获取资产中的资源: 在您提供的 应该是资产的相对路径,同样你会提供给。 或者,您也可以这样创建:

  • 我有一个名为的项目,它有以下结构: 所以这两个文件的路径是: 我想读测试文件。TestDataProvider中的json。JAVA 我曾经用过 我看到从URL res=getClass(). getClassLoader(). getResources("testfile.json")返回; 有人能帮我吗?

  • 问题内容: 我正在使用Spring Boot和。我正在尝试从文件夹读取一个文件。我尝试了几种不同的方法,但无法正常工作。这是我的代码。 这是文件的位置。 在这里,我可以看到文件夹中的文件。 但是,当我运行代码时,出现以下错误。 我在代码中做错了什么? 问题答案: 在花费大量时间尝试解决此问题之后,终于找到了可行的解决方案。该解决方案利用了Spring的ResourceUtils。也应该适用于jso