安卓工程文件打完包,之后運(yùn)行出現(xiàn):Error running app:Default Activity not found 報(bào)錯(cuò): APP標(biāo)志出現(xiàn)紅叉:
成都創(chuàng)新互聯(lián)是專業(yè)的四川網(wǎng)站建設(shè)公司,四川接單;提供成都網(wǎng)站建設(shè)、做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行四川網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
解決辦法:從網(wǎng)上找了很久答案,嘗試大部分都有問(wèn)題,EditConfiguration里launch選項(xiàng)下拉選擇Nothing就可以,都是錯(cuò)誤答案,誤導(dǎo)和浪費(fèi)我們的時(shí)間,正確的解決辦法:
1.如果工程之前運(yùn)行是好的,現(xiàn)在有問(wèn)題,就不是AndroidManifest.xml,沒(méi)有
activity標(biāo)簽里面的intent-filter加標(biāo)簽的問(wèn)題;
如果真沒(méi)加的話,需要在activity標(biāo)簽內(nèi)部加入intent-filter標(biāo)簽,并在這個(gè)標(biāo)簽里action android:name="android.intent.action.MAIN" /和category android:name="android.intent.category.LAUNCHER" /聲明。
因?yàn)闆](méi)有為程序配置主活動(dòng),程序運(yùn)行起來(lái)需要知道先啟動(dòng)哪一個(gè);
2.這是我解決的辦法:
打開 Android studio —— File —— Invalidate Caches/restart... —— Invalidate and Restart (點(diǎn)擊)
直接清除Android studio緩存,這個(gè)問(wèn)題解決了;
Q:找不到AsyncTaskCompatl類 NoClassDefFoundError: support/v4/os/AsyncTaskCompat
A:因?yàn)锳syncTaskCompat此類已在API26.0.0以上中被棄用了,所以需要更改compileSdkVersion最高26,同理targetSdkVersion和其它依賴也需要適當(dāng)降低版本。
Q:Service里監(jiān)聽按鍵然后啟動(dòng)Activity,大約延時(shí)2-3s左右才啟動(dòng)
A:使用延時(shí)意圖
app包下FragmentManager用:
Fragmentmanager fragmentManager=getFragmentManager();
v-4包的FragmentManager用:
FragmentManager fragmentManager=getSupportFragmentManager() 獲取
但是getSupportFragmentManager() 有其運(yùn)用范圍,只能在部分activity中運(yùn)用。當(dāng)遇到getSupportFragmentManager() 沒(méi)定義的問(wèn)題時(shí),修改下activity為FragmentActivity或者AppCompatActivity。
當(dāng)項(xiàng)目使用API28對(duì)應(yīng)的是android9.0,當(dāng)AndroidStudio運(yùn)行項(xiàng)目的時(shí)候出現(xiàn)編譯錯(cuò)誤:Error: Program type already present: android.support.v4.app.INotificationSideChannel,這意思是v4包沖突了。
首先,查找一下自己的文件里是否存在v4包重復(fù)的,搜索之后發(fā)現(xiàn)沒(méi)有出現(xiàn)重復(fù),針對(duì)這個(gè)問(wèn)題查看了網(wǎng)上一些資料,發(fā)現(xiàn)這個(gè)問(wèn)題是AndroidX版本引起的。有以下兩種解決方法:
1、Refactor--Migrate to AndroidX
2、向gradle.properties添加以下內(nèi)容:
android.enableJetifier=true
android.useAndroidX=true
Android與AndroidX包重復(fù)問(wèn)題詳情可查看這篇文章:
如果SDK不是28的版本,可在Terminal窗口復(fù)制命令gradlew clean build --stacktrace去查看詳細(xì)信息針對(duì)性去解決問(wèn)題~
一、前言
這系列文章是自己在平時(shí)開發(fā)過(guò)程中遇到的問(wèn)題。之前只是記在云筆記上面,現(xiàn)在整理一下,發(fā)出來(lái)共享。
ps:像那些什么沒(méi)有注冊(cè)Activity呀,權(quán)限呀等最基本的就不再贅述。
二、ADB連接異常
有時(shí)我們發(fā)現(xiàn),即使自己從任務(wù)管理器里面把a(bǔ)db.exe給干掉了,但還是不行,這時(shí),你就可以嘗試以下操作:
[2014-07-30 17:09:11 - QtActivity] The connection to adb is down, and a severe error has occured.
[2014-07-30 17:09:11 - QtActivity] You must restart adb and Eclipse.
[2014-07-30 17:09:11 - QtActivity] Please ensure that adb is correctly located at ‘D:\InstallFile\AndroidDevelop\ADT\sdk\platform-tools\adb.exe’ and can be executed.
adb起動(dòng)失敗:
1,殺掉其它的adb.exe看,如果不行,
2,看sdk\tools路徑下面有沒(méi)有
hprof-conv.exe
如果有,則把它復(fù)制到sdk\platform_tools下
3,如果沒(méi)有,剛看sdk\platform_tools下有沒(méi)有
hprof-conv.exe
如果有,剛復(fù)制到tools下。
4,如果兩者都沒(méi)有,剛下一個(gè)
hprof-conv.exe
三、java.lang.IllegalStateException: Activity has been destroyed
這個(gè)異常在切換Fragment中比較容易出現(xiàn),稍不注意就會(huì)出現(xiàn)如下異常:
FATAL EXCEPTION: main12-0909:20:14.689: E/AndroidRuntime(31223): java.lang.IllegalStateException: Activity has been destroyed12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1365)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)12-0909:20:14.689: E/AndroidRuntime(31223): at cn.com.topsky.community.tfd.DongTaiFragment.init(DongTaiFragment.java:209)12-0909:20:14.689: E/AndroidRuntime(31223): at cn.com.topsky.community.tfd.DongTaiFragment.onCreateView(DongTaiFragment.java:68)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)12-0909:20:14.689: E/AndroidRuntime(31223): at android.os.Handler.handleCallback(Handler.java:605)12-0909:20:14.689: E/AndroidRuntime(31223): at android.os.Handler.dispatchMessage(Handler.java:92)12-0909:20:14.689: E/AndroidRuntime(31223): at android.os.Looper.loop(Looper.java:154)12-0909:20:14.689: E/AndroidRuntime(31223): at android.app.ActivityThread.main(ActivityThread.java:4624)12-0909:20:14.689: E/AndroidRuntime(31223): at java.lang.reflect.Method.invokeNative(Native Method)12-0909:20:14.689: E/AndroidRuntime(31223): at java.lang.reflect.Method.invoke(Method.java:511)12-0909:20:14.689: E/AndroidRuntime(31223): atcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)12-0909:20:14.689: E/AndroidRuntime(31223): atcom.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)12-0909:20:14.689: E/AndroidRuntime(31223): at dalvik.system.NativeStart.main(Native Method)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
經(jīng)查,說(shuō)這個(gè)是當(dāng)前android-support-v4版本的一個(gè)bug,因?yàn)樵诋?dāng)fragment進(jìn)行到detached狀態(tài)時(shí),它會(huì)重置它的內(nèi)部狀態(tài)。
然而,它并沒(méi)有重置mChildFragmentManager.這導(dǎo)致在Fragment重新attach時(shí),它(fragment)沒(méi)有重新attachm childFragmentManager,從而引發(fā)了上面的異常.
解決方案:
在每個(gè)調(diào)用getChildFragmentManager()的fragment中復(fù)寫onDetach()方法:
@OverridepublicvoidonDetach() {super.onDetach();try{Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");childFragmentManager.setAccessible(true);childFragmentManager.set(this,null);}catch(NoSuchFieldException e) {thrownewRuntimeException(e);}catch(IllegalAccessException e) {thrownewRuntimeException(e);}}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
四、java.lang.IllegalArgumentException: Illegal character in query at index
這個(gè)異常,在我們拼接請(qǐng)求參數(shù)時(shí),可能會(huì)碰到,原因是里面的特殊字符轉(zhuǎn)換異常。解決辦法如下:
url轉(zhuǎn)換問(wèn)題
String url = baseUrl + “?” + “name=” + name + “age=” + age;
url = url.replaceAll(“”, “%26”);
url = url.replaceAll(” “, “%20”);
解釋如下:
特殊符號(hào)替換符號(hào)
?%3F
%26
|%124
=%3D
#%23
/%2F
+%2B
%%25
空格%20
五、eclipse連接小米2S調(diào)試程序的問(wèn)題
雖然快2年沒(méi)用過(guò)eclipse了,但這個(gè)問(wèn)題還是貼出來(lái),也許正好有正在用eclipse的同學(xué)遇到了此問(wèn)題:
小米Mi2S連接到eclipse上無(wú)法識(shí)別。即使開啟了調(diào)試模式,也無(wú)法識(shí)別.終于找到了一個(gè)可用的方法。
方法
用數(shù)據(jù)線連接手機(jī)和電腦。
打開手機(jī)撥號(hào)界面。
在撥號(hào)界面按 # #717717# # 自動(dòng)就開啟了。
在通知欄會(huì)出現(xiàn)一個(gè) Diag USB port enable。
當(dāng)然,應(yīng)該是需要ROOT權(quán)限的。
這時(shí)候你的PC機(jī)會(huì)彈出安裝設(shè)備驅(qū)動(dòng)。
如果不成功,多插拔幾次試試。
ok!安裝完就搞定了!這時(shí)候打開eclipse就會(huì)在Driver里面看到你的手機(jī)了。
注意事項(xiàng)
在PC機(jī)上安裝新硬件向?qū)r(shí)候可能會(huì)遭遇到缺少dll文件,比如我就遇到缺少了WinUSBCoInstaller2.dll,這個(gè)問(wèn)題。這時(shí)候就要去網(wǎng)上找找嘍。這個(gè)東西分x64 和 x86的,注意不要搞錯(cuò)了!
如果先打開eclipse,再安裝的話,可能導(dǎo)致eclipse掛掉,不明原因,可能是我機(jī)器配置不行。兩次均有這種狀況。所以建議先安裝后再開eclipse。
網(wǎng)頁(yè)題目:android錯(cuò)誤,android錯(cuò)誤什么意思
當(dāng)前鏈接:http://chinadenli.net/article48/dscchep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、定制開發(fā)、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站內(nèi)鏈、自適應(yīng)網(wǎng)站、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)