我在一个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'
}
对于所有面临这个问题的人,只需将您的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