Tag Archives: Android studio

Android Studio – Add As Library Error – IncorrectOperationException: Must not change document outside command or undo-transparent action.

今天嘗試Android Studio上加入 Windows Azure Mobile ServicesSDK
當我嘗試把這個SDK加入成為LibraryAdd As Library“時出現了以下的錯誤…
又是和之前的問題一樣..把Android Studio 升級到 0.5.1便出現很多問題了..
IncorrectOperationException: Must not change document outside command or undo-transparent action. See com.intellij.openapi.command.WriteCommandAction or com.intellij.openapi.command.CommandProcessor: Must not change document outside command or undo-transparent action. See com.intellij.openapi.command.WriteCommandAction or com.intellij.openapi.command.CommandProcessor

做了一會research 之後找到了解決方法..

解決方法
我們可以自行在build.gradle上加入以下 compile files(“path/filename.jar”)的參考便可以了
E.G. 我的Windows Azure Mobile Services SDK Library 的位置是在這裡的 “libs\mobileservices-1.1.0.jar
Windows Azure Mobile Services Path on Android Studio
所以在build.gradle上我的設定便會是這樣

compile files('libs/mobileservices-1.1.0.jar')

Android Studio - build.gradle - Windows Azure Mobile Services SDK
加入了參考後便可以使用 Windows Azure Mobile Services SDK for Android
E.g.
Activity 上我可以加入以下的參考 com.microsoft.windowsazure.mobileservices

import com.microsoft.windowsazure.mobileservices.MobileServiceClient;
import com.microsoft.windowsazure.mobileservices.MobileServiceTable;
import com.microsoft.windowsazure.mobileservices.NextServiceFilterCallback;
import com.microsoft.windowsazure.mobileservices.ServiceFilter;
import com.microsoft.windowsazure.mobileservices.ServiceFilterRequest;
import com.microsoft.windowsazure.mobileservices.ServiceFilterResponse;
import com.microsoft.windowsazure.mobileservices.ServiceFilterResponseCallback;
import com.microsoft.windowsazure.mobileservices.TableOperationCallback;
import com.microsoft.windowsazure.mobileservices.TableQueryCallback;

Hope you find it useful

no resource identifier found for attribute ‘ adsize ‘ in package – Android Studio – Google Play Services

最近幾天都在嘗試學習如何在Android Studio上使用 Google Play Services AdMob
之前的Android App 是用Admob SDK的

之前出現了
UNEXECTED TOP-LEVEL EXCEPTION – com.android.dex.decExeption: Mulitiple dex file define的問題
UNEXECTED TOP-LEVEL EXCEPTION - com.android.dex.decExeption: Mulitiple dex file define
所以我便刪除了

compile 'com.google.android.gms:play-services:4.2.42'
compile files('libs/google-play-services.jar')

使用Android Studio 0.5.1 build.gradle上的

compile fileTree(dir: 'libs', include: ['*.jar'])

嘗試做了很久Research..試了很多方法..可惜都解決不到
no resource identifier found for attribute ‘ adUnitId ‘ in package android studio

最後嘗試以直角去解決這個問題…終於能幸運地解決 =)

解決方法
應該是更新了Android Studio 0.5.1 Gradle的處理放法不同的關係..
所以有小小混亂

解決這個問題
我們需要Comment out /或刪去build.gradle上的

compile fileTree(dir: 'libs', include: ['*.jar'])

之後再加上Google Play Services的 參考
我的方法是
Android Project上按Right Click -> 選擇”Open Module Settings
Android Studio - Open Module Settings
之後便會出現”Project Structure” Windows “Project Settings” -> “Module
在右手邊有一些選項..
選擇 “Dependencies
之後按”+” -> 選擇”Library Dependency
Project Structure - Module -> Library Dependency
Choose Library Dependency” windows 便會彈出來..
我們可以在這裡選擇 “Google Play Services
Android Studio - Choose Library Dependency
之後按”OK
他便會在build.gradle加入一些和Google Play Service相關的設定/參考
Android Studio - build.gradle
完成後再次Compile這個Project
之後便可以解決這個問題了
no resource identifier found for attribute ‘ adUnitId ‘ in package” 的錯誤便會消失了

Hope you find it useful

UNEXECTED TOP-LEVEL EXCEPTION – com.android.dex.decExeption: Mulitiple dex file define

在更新了Android Studio 0.5.1 後很多時候跟隨教學的東西都用不著..
今天我的學習過程中又出現了一些問題了
在嘗試使用Google Play Services 的時候出現了以下的錯誤..
UNEXECTED TOP-LEVEL EXCEPTION - com.android.dex.decExeption: Mulitiple dex file define
情況應該是這樣的..
Android Studio 0.5.1開始在 build.gradle上多了一句

compile fileTree(dir: 'libs', include: ['*.jar'])

當我學習使用Google Play Services時我是使用0.4.6 版本的..
所以便使用了之前 “How to Add Library to Android Studio – 怎樣在Android Studio上加入 Library
的”Add as Library“的方法 加入了 “Google Play Services
這個功能亦都在 build.gradle上加入了一些 Reference/設定

E.g.

compile 'com.google.android.gms:play-services:4.2.42'
compile files('libs/google-play-services.jar')

就是因為這樣..在Android Studio上好像把 google-play-services.jar參考/Compile了兩次..
第一次是

compile fileTree(dir: 'libs', include: ['*.jar'])

另一次是

compile files('libs/google-play-services.jar')

build.gradle has both references on dependencies
所以便出現了這個錯誤
UNEXECTED TOP-LEVEL EXCEPTION – com.android.dex.decExeption: Mulitiple dex file define

解決方法十分簡單
我們只是刪除其中一個參考便可以了..
我選擇刪除

compile 'com.google.android.gms:play-services:4.2.42'
compile files('libs/google-play-services.jar')

之後再次Compile. .便沒有錯誤了

build.gradle without the google play services reference

Hope you find it useful

How to Add Library to Android Studio – 怎樣在Android Studio上加入 Library

對於使用Android StudioAndroid / Java 的新手來說
怎樣在Android Studio上加入 Library 可能是一個經常出現的問題..

我在學習過程中看到有很多不同的方法..
很多時候他都都敎我們把Library 放到 “Libs”的資料夾上..
之後又要在Gradle 檔案內加入一些reference / 設定等的東西..
才可以使用

經過多天的研究後發現原來在
Android Studio 上加入Library是得容易的事來的…
只是把你想使用的Java Library
放在Android Studio Project 上的 “libs“資料夾內..
我的例子是”Google Play Services” Library “google-play-services.jar

在更新Android Studio5.1.0後發現

compile fileTree(dir: 'libs', include: ['*.jar'])

在”build.gradle“上 好像已經有設定..只要在”libs“上的”.jar“檔案都會被Compile
Android Studio build.gradle

這應該可以解決 Add Library時要自行在”build.gradle“上加入一些設定的問題

如果是使用較舊的Android Studio或者需要自行在這個.jar上按
Mouse右按鈕..選擇”Add as Library
Android Studio - Add as Library
Android Studio 便會在”build.gradle“上加入相關的設定..
你便可以開始使用這個Library

Hope you find it useful

Android Studio Update to 0.5.1 – Gradle 0.9.0 introduced incompatible changes in the build language issue

今天發現Android Studio 有更新… 可以更新到 0.5.1 (Build number: 134.1061098)
誰不知..更新完之後出現了問題…
Failed to refresh Gradle project
The project is using an unsupported version of the Android Gradle plug-in (0.8.3).

Version 0.9.0 introduced incompatible changes in the build language.
Failed to refresh Gradle project - Version 0.9.0 introduced incompatible changes in the build language.

之後叫我去下面的網頁看看怎樣解決這個升級的問題…
http://tools.android.com/tech-docs/new-build-system/migrating_to_09

看了一會..都不明白我的Project 要更新那些東西..
因為我的程式內Gradle 的設定和他那個網頁上的..大至相同…

當我按Make Project 的時候..他又出現以下的錯誤信息…
Failed to refresh Gradle project  - Version 0.9.0 introduced incompatible changes in the build language.

最後終於找到了解決方法了…

如果你看了Android Studio 給你的升級提示..
又覺得不識的話.. 可以嘗試以下的解決方法

解決方法十分簡單…
Android StudioProject 上 的最面層 Root Layer
有一個名叫”build.gradle“的gradle設定檔
開啟這個檔案之後你便會看到一些和這個Project上的設定
E.G. 有Build Script 等等
Dependencies上 的Classpath 找出一個以
com.android.tools.build.gradle:” 開頭的 句子 把他修改成 0.9.+便可以了

我的是這樣的

  dependencies {
        classpath 'com.android.tools.build:gradle:0.8.+'
    }

 classpath 'com.android.tools.build:gradle:0.8.+'

把他改成

  dependencies {
        classpath 'com.android.tools.build:gradle:0.9.+'
    }

classpath 'com.android.tools.build:gradle:0.9.+'

儲存之後按一下上方的”Try Again“..令Android Studio再次Sync這個Gradle

之後應該可以解決這個問題的

Hope you find is useful