(原创)开发使用Android studio所遇到的一些问题总结
1.Android studio下載鏈接地址(無(wú)需翻墻):包含先行版和正式版(推薦使用正式版bug少)
? ?http://www.androiddevtools.cn/
2.第一次安裝避免成功先不要急著打開(kāi)應(yīng)用,先取消打開(kāi),到安裝目錄下/bin/idea.properties文件打開(kāi)在最后面添加
? disable.android.first.run=true ?并后面多一行回車(chē)即可,再重新打開(kāi)AS即可避免第一次去聯(lián)網(wǎng)請(qǐng)求更新
3.導(dǎo)入eclipse項(xiàng)目:例如本人需要導(dǎo)入D:\workspace\eclipse\test一個(gè)test項(xiàng)目方式
選擇需要導(dǎo)入的項(xiàng)目:(要是有依賴(lài)jar也是直接選中導(dǎo)入主項(xiàng)目即可);點(diǎn)擊OK進(jìn)入下一步
選擇存放的工程項(xiàng)目目錄位置:
下一步:默認(rèn)即可
finish即可完成導(dǎo)入,是不是so easy!
導(dǎo)入成功后:需要類(lèi)似eclipse視圖方式需要切換
選擇project即可
看到手機(jī)圖標(biāo)么有,這就說(shuō)明你項(xiàng)目可以正常運(yùn)行了
下面講解下關(guān)于gradle編譯相關(guān)出錯(cuò)地方和怎么選擇你自己本地的gradle編譯版本
首先:一般情況下都要將gradle設(shè)置為離線不去更新,這可能涉及到需要翻墻去尋找就會(huì)導(dǎo)致項(xiàng)目卡住在那里一直編譯;修改如下設(shè)置
1.點(diǎn)擊扳手圖標(biāo)---setting
搜索gradle按如下設(shè)置
如何選擇本地gradle:上面圖的第一個(gè)紅圈選項(xiàng)既是選擇本地gradle點(diǎn)擊后面的...彈出框選擇AS安裝目錄下/gradle相應(yīng)版本即可如圖
2.關(guān)于導(dǎo)入別人項(xiàng)目導(dǎo)致本地的gradle與其不一致無(wú)法編譯通過(guò)(也就是編譯報(bào)錯(cuò)問(wèn)題)解決
首先:需要修改編譯gradle下的壓縮包路徑,查看本地版本方式:D:\Program\android-studio\gradle
3.關(guān)于項(xiàng)目整體gradle編譯工具版本修改,查看方式:D:\Program\android-studio\gradle\m2repository\com\android\tools\build\gradle
對(duì)應(yīng)項(xiàng)目中的版本:注意是最外層gradle
4.對(duì)于單個(gè)項(xiàng)目或者jar依賴(lài)包的節(jié)點(diǎn)下的各個(gè)gradle創(chuàng)建工具版本號(hào),查看方式:
基本修改完這些項(xiàng)目都是可以正常運(yùn)行了!!!
以下為開(kāi)發(fā)過(guò)程的其他AS報(bào)錯(cuò)的整理:
1.出現(xiàn)非法字符:將所有報(bào)錯(cuò)的文件找到該文件將其格式設(shè)置為UTF-8無(wú)BOM
如:
D:\workspace\studiojob\DadaDriver\dadaDriver\src\main\java\com\newdadadriver\utils\ChannelUtil.java
Error:(1, 1) 錯(cuò)誤: 非法字符: \65279
Error:(1, 10) 錯(cuò)誤: 需要class, interface或enum
2.Project Sync
? ? ? ? ?The project 'DadaDriver' is not a Gradle-based project
? ? ? ? ?More Information about migrating to Gradle
? gradle源文件缺失問(wèn)題;重新import工程即可
3.AssertionError: platform-tools doesn't match platform-tools-preview
編譯問(wèn)題;刷新即可
4.最低版本報(bào)錯(cuò):更改更高版本號(hào)?
? ? ?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.運(yùn)行項(xiàng)目出現(xiàn):按提示添加相應(yīng)的代碼到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.模擬器出現(xiàn)空白,無(wú)法正常顯示,原因:沒(méi)有對(duì)應(yīng)可以顯示布局版本,調(diào)低即可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)
以上是本人暫時(shí)遇到整理的問(wèn)題,后續(xù)有發(fā)現(xiàn)其他還會(huì)添加!
7. Apk的簽名混淆打包
7-1. 創(chuàng)建簽名文件keystore
7-2. 簽名apk
可以代碼直接在build.gradle里面編寫(xiě)
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"}//執(zhí)行l(wèi)int檢查,有任何的錯(cuò)誤或者警告提示,都會(huì)終止構(gòu)建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文件配置# 指定代碼的壓縮級(jí)別 -optimizationpasses 5# 包名不混合大小寫(xiě) -dontusemixedcaseclassnames# 不去忽略非公共的庫(kù)類(lèi) -dontskipnonpubliclibraryclasses# 優(yōu)化 不優(yōu)化輸入的類(lèi)文件 -dontoptimize# 預(yù)校驗(yàn) -dontpreverify# 混淆時(shí)是否記錄日志 -verbose# 混淆時(shí)所采用的算法 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*# 保護(hù)注解 -keepattributes *Annotation*# 保持哪些類(lèi)不被混淆 -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>; }# 保持自定義控件類(lèi)不被混淆 -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 類(lèi)不被混淆 -keepclassmembers enum * {public static **[] values();public static ** valueOf(java.lang.String); }
總結(jié)
以上是生活随笔為你收集整理的(原创)开发使用Android studio所遇到的一些问题总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 立体扫雷
- 下一篇: Android 界面介绍与绘制优化