如何确定为什么Android构建错误“链接文件资源失败”?

时间:2018-12-24 12:15:17

标签: android build.gradle

我的Android Studio项目抛出了该错误。突然之间。我不知道这是什么。

我尝试了所有可能的方法,但是根本没有用。它运行正常,但是突然间,当我尝试在手机中测试该应用程序时。它告诉我这个错误。我已经重建了项目并重新启动了Android Studio,我在互联网上尝试了所有可能的解决方案,但没有一个对我有用。

// Guest
Route::group([ 'middleware' => ['guest', 'fw-block-bl']], function () {
});

这是主要的活动XML代码。

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugResources'.
> Android resource linking failed
  Output:  C:\Charcha2\app\src\main\res\layout\activity_main.xml:16: error: attribute fabAttached (aka global.alyssum.charcha:fabAttached) not found.
  error: failed linking file resources.

  Command: C:\Program Files\android-studio\gradle\caches\transforms-1\files-1.1\aapt2-3.2.1-4818971-windows.jar\139903147407266fe3b81c96769c0caf\aapt2-3.2.1-4818971-windows\aapt2.exe link -I\
          C:\ANDROID\NEWFOLDER\SDK\platforms\android-28\android.jar\
          --manifest\
          C:\Charcha2\app\build\intermediates\merged_manifests\debug\processDebugManifest\merged\AndroidManifest.xml\
          -o\
          C:\Charcha2\app\build\intermediates\processed_res\debug\processDebugResources\out\resources-debug.ap_\
          -R\
          @C:\Charcha2\app\build\intermediates\incremental\processDebugResources\resources-list-for-resources-debug.ap_.txt\
          --auto-add-overlay\
          --java\
          C:\Charcha2\app\build\generated\not_namespaced_r_class_sources\debug\processDebugResources\r\
          --custom-package\
          global.alyssum.charcha\
          -0\
          apk\
          --output-text-symbols\
          C:\Charcha2\app\build\intermediates\symbols\debug\R.txt\
          --no-version-vectors
  Daemon:  AAPT2 aapt2-3.2.1-4818971-windows Daemon #0
  Output:  C:\Charcha2\app\src\main\res\layout\activity_main.xml:16: AAPT: error: attribute fabAttached (aka global.alyssum.charcha:fabAttached) not found.

  error: failed linking file resources.
  Command: C:\Program Files\android-studio\gradle\caches\transforms-1\files-1.1\aapt2-3.2.1-4818971-windows.jar\139903147407266fe3b81c96769c0caf\aapt2-3.2.1-4818971-windows\aapt2.exe link -I\
          C:\ANDROID\NEWFOLDER\SDK\platforms\android-28\android.jar\
          --manifest\
          C:\Charcha2\app\build\intermediates\merged_manifests\debug\processDebugManifest\merged\AndroidManifest.xml\
          -o\
          C:\Charcha2\app\build\intermediates\processed_res\debug\processDebugResources\out\resources-debug.ap_\
          -R\
          @C:\Charcha2\app\build\intermediates\incremental\processDebugResources\resources-list-for-resources-debug.ap_.txt\
          --auto-add-overlay\
          --java\
          C:\Charcha2\app\build\generated\not_namespaced_r_class_sources\debug\processDebugResources\r\
          --custom-package\
          global.alyssum.charcha\
          -0\
          apk\
          --output-text-symbols\
          C:\Charcha2\app\build\intermediates\symbols\debug\R.txt\
          --no-version-vectors
  Daemon:  AAPT2 aapt2-3.2.1-4818971-windows Daemon #0

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

这是我的gradle文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <androidx.coordinatorlayout.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <com.google.android.material.bottomappbar.BottomAppBar
            android:id="@+id/bottomAppBar"
            style="@style/Widget.MaterialComponents.BottomAppBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:backgroundTint="#fff"
            app:fabAttached="true"
            app:fabCradleRoundedCornerRadius="16dp">

            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_marginStart="30dp"
                app:srcCompat="@drawable/home" />


            <ImageView
                android:id="@+id/imageView3"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_marginStart="45dp"
                app:layout_anchor="@id/bottomAppBar"
                app:srcCompat="@drawable/deals" />

            <ImageView
                android:id="@+id/imageView4"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_marginStart="95dp"
                app:srcCompat="@drawable/listing" />


            <ImageView
                android:id="@+id/imageView5"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_marginStart="45dp"
                app:srcCompat="@drawable/profile" />


        </com.google.android.material.bottomappbar.BottomAppBar>


        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:fabSize="normal"
            android:src="@drawable/addvideo"
            app:backgroundTint="#fff"
            app:layout_anchor="@+id/bottomAppBar"
            android:scaleType="center"
            android:id="@+id/myFab"
            />

        <androidx.appcompat.widget.Toolbar
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:id="@+id/toolBar"
            android:background="@drawable/grey_border_top">


            <ImageView
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:src="@drawable/city"
                android:foregroundGravity="left"/>

            <EditText
                android:layout_width="180dp"
                android:layout_height="23dp"
                android:layout_marginStart="40dp"
                android:background="@drawable/search_border"
                android:hint="Search videos..."
                android:padding="3dp"
                android:textStyle="italic" />

            <ImageView
                android:layout_width="21dp"
                android:layout_height="21dp"
                android:src="@drawable/search"
                android:layout_marginStart="7dp"
                />

            <TextView
                android:id="@+id/changeLang"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="20dp"
                android:clickable="true"
                android:onClick="onClick"
                android:text="Change Language"
                android:textColor="@android:color/black" />

        </androidx.appcompat.widget.Toolbar>

        <com.google.android.material.tabs.TabLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_marginTop="?attr/actionBarSize"
            android:id="@+id/tab_layout">

        </com.google.android.material.tabs.TabLayout>


        <androidx.viewpager.widget.ViewPager
            android:layout_width="match_parent"
            android:layout_marginTop="?attr/actionBarSize"
            android:layout_height="360dp"
            android:id="@+id/viewPager"/>


    </androidx.coordinatorlayout.widget.CoordinatorLayout>

</LinearLayout>

这是我的mainActivity

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "global.alyssum.charcha"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.0.0-alpha1'
    implementation 'com.google.android.gms:play-services-ads:15.0.0'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.android.support:design:28.0.0'
    implementation 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0-alpha1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'
}

这是清单文件。

package global.alyssum.charcha;


import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
//import android.widget.Toolbar;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.tabs.TabLayout;

import java.util.ArrayList;

import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import global.alyssum.charcha.adapter.PagerAdapter;

public class MainActivity extends AppCompatActivity {

    Toolbar AGS_toolbar;
    TextView AGS_langChangeTextView;
    FloatingActionButton AGS_Fab;
    private TabLayout AGS_tabLayout = null;
    private ViewPager AGS_viewPager = null;

    public void onClick(View view) {

        Toast.makeText(MainActivity.this, "Language changed.", Toast.LENGTH_SHORT).show();

    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        AGS_toolbar = (Toolbar) findViewById(R.id.toolBar);
        AGS_langChangeTextView = (TextView)findViewById(R.id.changeLang);
        AGS_Fab = (FloatingActionButton) findViewById(R.id.myFab);
        AGS_tabLayout = (TabLayout) findViewById(R.id.tab_layout);
        AGS_viewPager = (ViewPager) findViewById(R.id.viewPager);


        final PagerAdapter adapter = new global.alyssum.charcha.adapter.PagerAdapter(getSupportFragmentManager(),AGS_tabLayout.getTabCount());
        AGS_viewPager.setAdapter(adapter);

    }


}

2 个答案:

答案 0 :(得分:2)

在此:
https://material.io/develop/android/components/bottom-app-bar/
这个:
https://developer.android.com/reference/com/google/android/material/bottomappbar/package-summary
没有提及fabAttached属性。
而是第一个链接指出:

  

FloatingActionButton可以通过以下方式锚定到BottomAppBar   设置app:layout_anchor或通过调用   CoordinatorLayout.LayoutParams#setAnchorId(int)

因此删除此属性:

app:fabAttached="true"

答案 1 :(得分:0)

我有一个非常相似的问题。

检查是否可以在项目的Java子文件夹之一中找到资源文件“ R”。听起来好像无法确定资源文件的位置。如果找不到它,则可能会将其删除,这可能是链接错误的原因。 就我而言,当我创建Google Maps活动时,它被删除了。

如果找不到它: 尝试:构建->清理项目 那会清理gradle文件

或者:文件->使缓存无效 然后用gradle文件同步项目

试试看,看看它是否有任何改变。它可能会还原资源文件。如果没有,我建议创建一个新项目 并将代码从“旧”项目复制并粘贴到新项目中。这样,您可以确保资源文件已还原,并且应该消除链接错误。 您必须再次创建所有xml文件和Java类,但是根据项目的大小,它可能比尝试还原资源文件要快。