(原创)开发使用Android studio所遇到的一些问题总结
1.Android studio下載鏈接地址(無需翻墻):包含先行版和正式版(推薦使用正式版bug少)
? ?http://www.androiddevtools.cn/
2.第一次安裝避免成功先不要急著打開應用,先取消打開,到安裝目錄下/bin/idea.properties文件打開在最后面添加
? disable.android.first.run=true ?并后面多一行回車即可,再重新打開AS即可避免第一次去聯網請求更新
3.導入eclipse項目:例如本人需要導入D:\workspace\eclipse\test一個test項目方式
選擇需要導入的項目:(要是有依賴jar也是直接選中導入主項目即可);點擊OK進入下一步
選擇存放的工程項目目錄位置:
下一步:默認即可
finish即可完成導入,是不是so easy!
導入成功后:需要類似eclipse視圖方式需要切換
選擇project即可
看到手機圖標么有,這就說明你項目可以正常運行了
下面講解下關于gradle編譯相關出錯地方和怎么選擇你自己本地的gradle編譯版本
首先:一般情況下都要將gradle設置為離線不去更新,這可能涉及到需要翻墻去尋找就會導致項目卡住在那里一直編譯;修改如下設置
1.點擊扳手圖標---setting
搜索gradle按如下設置
如何選擇本地gradle:上面圖的第一個紅圈選項既是選擇本地gradle點擊后面的...彈出框選擇AS安裝目錄下/gradle相應版本即可如圖
2.關于導入別人項目導致本地的gradle與其不一致無法編譯通過(也就是編譯報錯問題)解決
首先:需要修改編譯gradle下的壓縮包路徑,查看本地版本方式:D:\Program\android-studio\gradle
3.關于項目整體gradle編譯工具版本修改,查看方式:D:\Program\android-studio\gradle\m2repository\com\android\tools\build\gradle
對應項目中的版本:注意是最外層gradle
4.對于單個項目或者jar依賴包的節點下的各個gradle創建工具版本號,查看方式:
基本修改完這些項目都是可以正常運行了!!!
以下為開發過程的其他AS報錯的整理:
1.出現非法字符:將所有報錯的文件找到該文件將其格式設置為UTF-8無BOM
如:
D:\workspace\studiojob\DadaDriver\dadaDriver\src\main\java\com\newdadadriver\utils\ChannelUtil.java
Error:(1, 1) 錯誤: 非法字符: \65279
Error:(1, 10) 錯誤: 需要class, interface或enum
2.Project Sync
? ? ? ? ?The project 'DadaDriver' is not a Gradle-based project
? ? ? ? ?More Information about migrating to Gradle
? gradle源文件缺失問題;重新import工程即可
3.AssertionError: platform-tools doesn't match platform-tools-preview
編譯問題;刷新即可
4.最低版本報錯:更改更高版本號?
? ? ?Error:(5, 5) uses-sdk:minSdkVersion 5 cannot be smaller than version 8 declared in library?
D:\workspace\studiojob\DadaDriver\slidingMenu_library\build\intermediates\exploded-aar\DadaDriver\androidSupportLib\unspecified\AndroidManifest.xml
5.運行項目出現:按提示添加相應的代碼到build.gradle的Android下即可
Error:duplicate files during packaging of APK D:\workspace\studiojob\DadaDriver\dadaDriver\build\outputs\apk\dadaDriver-debug-unaligned.apk
Path in archive: META-INF/LICENSE.txt
Origin 1: D:\workspace\studiojob\DadaDriver\dadaDriver\libs\httpmime-4.2.4.jar
Origin 2: D:\workspace\studiojob\DadaDriver\dadaDriver\libs\fastjson.jar
You can ignore those files in your build.gradle:
android {
? packagingOptions {
? exclude 'META-INF/LICENSE.txt'
? ? ? ? ? ? exclude 'META-INF/NOTICE.txt'
? }
}
6.模擬器出現空白,無法正常顯示,原因:沒有對應可以顯示布局版本,調低即可org.jetbrains.android.uipreview.RenderingException:Failed to load the LayoutLib: com/android/layoutlib/bridge/Bridge : Unsupportedmajor.minor version 52.0
at org.jetbrains.android.uipreview.LayoutLibraryLoader.load(LayoutLibraryLoader.java:90)
atorg.jetbrains.android.sdk.AndroidTargetData.getLayoutLibrary(AndroidTargetData.java:180)
atcom.android.tools.idea.rendering.RenderService.createTask(RenderService.java:164)
以上是本人暫時遇到整理的問題,后續有發現其他還會添加!
7. Apk的簽名混淆打包
7-1. 創建簽名文件keystore
7-2. 簽名apk
可以代碼直接在build.gradle里面編寫
android {signingConfigs {// 簽名config {keyAlias 'test'keyPassword '123456'storeFile file('H:/zhou/keystore.jks')storePassword '123456'}}compileSdkVersion 24buildToolsVersion "24.0.1"defaultConfig {applicationId "com.vsoontech.p2p.sample"minSdkVersion 15targetSdkVersion 24versionCode 1versionName "1.0"}//執行lint檢查,有任何的錯誤或者警告提示,都會終止構建lintOptions {abortOnError false}buildTypes {debug {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}release {minifyEnabled true // 混淆zipAlignEnabled trueshrinkResources trueproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'signingConfig signingConfigs.config // 使用簽名}}productFlavors {} }7-2. 混淆
只要是proguard-rules.pro文件配置# 指定代碼的壓縮級別 -optimizationpasses 5# 包名不混合大小寫 -dontusemixedcaseclassnames# 不去忽略非公共的庫類 -dontskipnonpubliclibraryclasses# 優化 不優化輸入的類文件 -dontoptimize# 預校驗 -dontpreverify# 混淆時是否記錄日志 -verbose# 混淆時所采用的算法 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*# 保護注解 -keepattributes *Annotation*# 保持哪些類不被混淆 -keep class com.vsoontech.p2p.** {*;} -keep class com.linkin.base.** {*;}# 如果有引用v4包可以添加下面這行 -keep public class * extends android.support.v4.app.Fragment# 忽略警告 -ignorewarning# 如果引用了v4或者v7包 -dontwarn android.support.**# 保持 native 方法不被混淆 -keepclasseswithmembernames class * {native <methods>; }# 保持自定義控件類不被混淆 -keepclasseswithmembers class * {public <init>(android.content.Context, android.util.AttributeSet); }# 保持 Parcelable 不被混淆 -keep class * implements android.os.Parcelable {public static final android.os.Parcelable$Creator *; }# 保持枚舉 enum 類不被混淆 -keepclassmembers enum * {public static **[] values();public static ** valueOf(java.lang.String); }
總結
以上是生活随笔為你收集整理的(原创)开发使用Android studio所遇到的一些问题总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 立体扫雷
- 下一篇: Android 界面介绍与绘制优化