1. 程式人生 > >Android Studio更新導致Program type already present:的問題以及如下描述。R檔案丟失問題

Android Studio更新導致Program type already present:的問題以及如下描述。R檔案丟失問題

All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 27.1.1, 27.0.2, 24.1.1. Examples include com.android.support:animated-vector-drawable:27.1.1 and com.android.support:recyclerview-v7:27.0.2 less... (Ctrl+F1) 

There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion).


error:resource android:attr/colorError not found.

error:resource android:attr/colorError not found.

error:style attribute "android:attr/keyboardNavigationCluster" not found.

error:resource android:attr/fontStyle not found.

error:resource android:attr/font not found.

error:resource android:attr/fontWeight not found.

解決辦法:https://blog.csdn.net/u012862619/article/details/80475908    

  • 方法一 
build.gradle中的所有support依賴改為27.1.1
implementation 'com.android.support:appcompat-v7:27.1.1'
  • 1
  • 方法二 
如果以上方法不行,在dependencies{}完成後做相關配置
configurations {
   all*.exclude group: 'com.android.support', module: 'support-v13'
}

 方法三:

仔細檢視  錯誤資訊Program type already present:後面的提示(看是哪個包中的錯誤),將對應包遮蔽,例如:

implementation(

'com.android.support:appcompat-v7:27.1.0', { exclude group: 'com.android.support', module: 'design'})

implementation('com.android.support:recyclerview-v7:27.1.0', { exclude group: 'com.android.support', module: 'design'})

implementation('com.android.support:cardview-v7:27.1.0', { exclude group: 'com.android.support', module: 'design'})

方法四:檢視app的build.gradle是否只有一個v7包,在後邊加上對應版本的design包。再不行的話接著加v4包,再不行接著加cardview包,再不行加recycleview包。

implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support:cardview-v7:27.1.1'

我是通過方法四解決的。

Error:Execution failed for task ':app:processDebugManifest'


出現標題的問題,我遇到有幾種情況,簡單說明下解決方法:
第一種
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute meta-data#[email protected] value=(@xml/filepaths) from AndroidManifest.xml:393:17-50
  is also present at [com.jph.takephoto:takephoto_library:4.0.3] AndroidManifest.xml:24:17-51 value=(@xml/file_paths).
  Suggestion: add 'tools:replace="android:resource"' to <meta-data> element at AndroidManifest.xml:391:13-393:53 to override.
看到上面錯誤說明相信大家也明白為什麼報錯,造成這個問題的原因是,我在自己的應用中使用了FileProvider,然而依賴庫中也是用了FileProvider,所以造成了這個問題的出現,按照提示進行修改,就不會再儲存了Android 從 N 開始不允許以 file:// 的方式通過 Intent 在兩個 App 之間分享檔案,取而代之的是通過 FileProvider 生成 content://Uri 。如果在 Android N 以上的版本繼續使用 file:// 方式分享檔案,則系統會直接丟擲異常,導致 App 出現 Crash
第二種
使用FileProvider的相關配置後,Manifest檔案中許可權重複也出現了這種問題,去重就好了
第三種

就是依賴的庫的targetSdkVersion和主module的targetSdkVersion版本號不一致導致的,需要統一下,所以要注意系統的適配

第四種

Manifest merger failed with multiple errors, see logs

出現這個錯誤的原因是:多個module的Manifest檔案中application標籤中的屬性因為相同從而衝突,解決方法:在主module(也就是app)中 Manifest 為application標籤加如下屬性:tools:replace="android:icon,android:theme,android:allowBackup",前提是根標籤要有:xmlns:tools="http://schemas.android.com/tools"

關於FileProvider的使用網上有很多,這裡不多講,可以看看這個:http://blog.csdn.net/duanyy1990/article/details/68961159

問題1:

Error:Execution failed for task ':app:processDebugManifest'.> Manifest merger failed with multiple errors, see logs

在網上查到了一些這個問題的解決辦法:

方法一:

1)在Manifest根標籤加上 xmlns:tools="http://schemas.android.com/tools"

2)<user-sdk tools:overrideLibrary="自己需要強制替換的庫"/>

3)在Manifest.xml的application標籤下新增 tools:replace="android:icon, android:label,android:theme"

方法二:

在build.gradle根標籤上加上useOldManifestMerger true (懶人方法)

但是上邊的方法並沒有解決我的問題,後來通過檢查AndroidManifest.xml檔案,發現、

<meta-data android:name="UMENG_APPKEY" android:value="*****">

被重複聲明瞭兩次,去掉其中一個就可以了,問題解決。

問題2:

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.>

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v7/appcompat/R$anim.class

報了這個問題,因為v7包衝突的問題,檢測了整個專案,發現v7並沒有衝突。後來再網上看到說是因為gradle wrapper的問題。 在專案根目錄下執行命令:gradlew clean即可(./代表根目錄)。

問題3:

RecyclerView在更新資料是,出現:java.lang.IllegalArgumentException Scrapped or attached views may not be recycled. isScrap:false isAttached:true

問題是因為在獲取新資料事將資料集合清除了,但是沒有notifyDataSetChanged.可以將清除集合操作在獲取資料之後將原來的集合清除,然後再將新資料加到集合中呼叫adapter的notifyDataSetChanged()方法.

問題4:

最近一個朋友問我一個問題:Toast中的內容不居中顯示,一開始他傳入的Context是Activity,我讓他修改成getBaseContext()、getApplicationContext()都不行。後來查詢到在Application 配置的主題中設定了fitsSystemWindows=true ,註釋掉就可以了。

問題5:

最近以為群友出現了一個問題:Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not requestWindow.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.

提示新增toolbar失敗,已經存在了actionbar。

解決辦法:

方式一:將主題替換為NoTitleBar主題;

方式二:將當期主題的notitle設定為true;


相關推薦

Android Studio更新導致Program type already present:的問題以及如下描述R檔案丟失問題 Error:Execution failed for task ':app:processDebugManifest'

All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 27.1.1,

Android Studio更新導致Program type already present: android.support.design.widget.CoordinatorLayout$1

Android Studio 升級到3.1後,打包時會出現該錯誤。出現該錯誤的原因是各種support包相互衝突(design包版本衝突)。 網上少了一些方法,不過好像沒啥用(可能大家引入的

Android Studio更新導致Program type already present:的問題以及如下描述R檔案丟失問題

All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versi

Android Studio 編譯: Program type already present: XXX 解決方案

情況1:個例 build.gradle 中 dependencies { classpath 'com.android.tools.build:gradle:3.1.1' // } 改成 dependenc

Android. 依賴衝突 Program type already present

目錄 常用引用: 解決方案: 在實際開發中,為了提高開發速度和效率,避免不了引用第三方提供的依賴和類庫,如果含有相同依賴的類庫被我們引用時,而他們的版本又不相同,就有可能會導致一系列問題和異常:   常用引用: 網路相關:okhttp、retrofit、http

Error: Program type already present: android.support.v4.app.FragmentTransitionCompat21$1

參考連結 https://stackoverflow.com/questions/52845161/error-program-type-already-present-android-support-v4-app-fragmenttransitionco 主要原因: gra

Error: Program type already present: android.support.v4.accessibilityservice.AccessibilityServiceInf

報錯原因:v4包衝突 配置ButterKnife過程中報錯(與support-v4包衝突,Program type already present: android.support.v4..) 解決 上github上原始碼那裡查了一下,在根目錄的build.gradle可以看到

android Error: Program type already present: com.alibaba.android.arouter.routes.ARouter$$Group$$blog

這個問題的原因在與不同的module中的RouterPah的 一級名字相同造成的,或者專案中出現了相同的路徑。 比如專案結構是app ,moudleA,moduleB, 那麼moudleA 如果出現的路徑名是:"/module/test/testvideo",moduleB中出現了路徑名:"

解決Error: Program type already present: android.support.design.widget.CoordinatorLayout$Behavior

我專案中的build.gradle中本來是如下依賴 implementation 'com.android.support:appcompat-v7:27.1.1' 但是一旦編譯或執行就會出現這個錯誤 Error: Program type already present: androi

Compilation failed to complete:Program type already present: android.support.v4.accessibilityservice

.Compilation failed to complete .Program type already present:android.support.v4.accessibilityservice.AccessibilityServiceInfoCompatM

Android解決依賴衝突:Program type already present

今天在編譯專案時,報錯: Program type already present: android.content.pm.IPackageDeleteObserver 就是依賴衝突,後來解決就是 雙擊shift,全域性查詢衝突的這個IPackageDeleteObserve ,發現

報錯Error : Program type already present: android.support.design.widget.CoordinatorLayout$

方法一 support依賴版本改為27.1.1並新增一下配置 implementation 'com.android.support:appcompat-v7:27.1.1' configur

android 配置報錯:Program type already present: android.support.v4.app.BackStackRecord$Op

最近在整理公司的一些專案,總結做過的專案檔案,每次從svn下載下來的專案 都會報錯,其他小問題 就不一一說了,見招拆招,碰到兩個頭疼的問題,最後發現 解決辦法是一樣 在這裡,跟大家分享一下,如果,你知道,可以忽略,錯誤:Program type already present

配置ButterKnife過程中報錯(與support-v4包衝突,Program type already present: android.support.v4..)解決

今天沒什麼任務,就想試著用一下butter knife,。雖然很早就聽說過,但是一直沒用過,所以打算試著用一下,看看利弊。我遇到的報錯是這樣的:我配置的support-v4跟butterknife中support-v4版本不一致,因為如果我把butterknife注掉的話就不

Program type already present: android.support.v4.app.backstackrecord$Op

除錯過程中如果出現上述錯誤 最好的解決辦法是把build.gradle檔案中的下面部分:dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.sup

Program type already present: android.support.v13.view.DragAndDropPermissionsCompat

今天在繼承GreenDao時遇到這個問題,這個問題不常見,記錄下來希望能夠幫到大家,解決方式:在gradle中的dependencies 中新增configurations { all*.exclude group: 'com.android.support', mo

Program type already present:okio.AsyncTimeout$Watchdog Message{kind=ERROR, text=Program type :okio

有兩個okio 通過雙擊shift鍵盤,然後在輸入框裡面輸入AsyncTimeout,發現是因為有兩個okio.jar包,手動暴力刪除後就好了 然而過了幾天問題又重新出現了,一樣的問題,沒錯!就是下圖的這個問題 經過不懈的谷歌,終於找到了解決方案(在app下的build檔案下的andr

Program type already present: com.baidu.lbsapi.auth.ErrorMessage

百度地圖開發的時候遇到的問題,因為百度地圖不知道從什麼時候開始下載過來的SDK是包含了他們demo中用到的一些框架,所以哪個框架是有用的哪個是沒用的傻傻分不清,比如一般常用的jar包是BaiduLBS_Android.jar,這個jar包包含了百度地圖大部分功能開發所需,我在

Program type already present: com.google.gson.FieldAttributes

錯誤如下圖 問題原因:工程重複引用了gson的jar包所致。 解決辦法:在build.gradle的dependencies中加入程式碼:作用就是去除重複gson包 dependencies

android studio 更新 Gradle錯誤解決方法(Gradle sync failed)

app 是我 clear 聯網 建議 span 內容 roi file android studio 更新 Gradle錯誤解決方法 Android Studio每次更新版本都會更新Gradle這個插件,但由於長城的問題每次更新都是失敗,又是停止在Refre