ERROR! The server quit without updating PID file





mysql.server restart 명령어를 입력했는데 위와 같은 오류가 뜰때

현재 mysql이 동작 중이므로 ps aux | grep mysql 명령어를 이용하여 

동작중인 프로세스를 찾아 kill해준다.

(첨에 제대로 못보고 grep mysql 명령에 대한 프로세스를 kill해줬다; 실수)


mysql폴더의 권한을 777로 변경해주는 방법도 있다고 하는데

나는 이 방법이 되지 않아서 프로세스를 kill하고 다시 실행했다.

신고

깃허브 등에서 안드로이드 소스를 찾아보다가

xml에 tools:context라는 코드가 나와서 궁금해서 찾아보았다.







무엇에 쓰는 놈인고 하니 안드로이드 스튜디오에서 제공되는

Graphycal Layout을 정확하게 사용하기 위하여 쓰는 소스란다.


tools:context의 뒷부분을 확인해보면 확실히 클래스와 연결해주는 듯한 모습을 보인다.

아마도 클래스와 액티비티의 싱크를 정확하게 연결하여 

좀 더 시각적으로 표현하기 쉽게 하는 용도로 보인다.







가장 아래 부분의 소스코드가 tools:context이다.

결론적으로 Graphycal Layout을 잘 사용하지 않으면 없어도 무관하다.

신고


Error:Failed to resolve: com.google.firebase:firebase-core:9.4.0 가 뜨며 제대로 빌드 되지 않는다.


이는 Googleplay Services버전이 낮아서 발생한다.

따라서 SDK매니저를 실행시켜 업데이트를 진행하면 된다.






업데이트 항목은

Google Play services, Google Repository 이다.






업데이트를 실행 후 Sync now를 클릭하면 정상적으로 동작한다.


Firebase 홈페이지에 안드로이드 스튜디오 및 google service에 대한 권장 버전이 나오니

개발자페이지에서 확인 바란다.



신고


안드로이드에서 카카오톡 로그인을 구현 중

디바이스에서 켜지지도 않고 오류로 꺼지는 경우가 있다.


카카오톡 개발자 페이지에서 제공하는 샘플 소스를 사용한다고 가정 하였을 때

가장 큰 이유는 세션 초기화이다. 


대부분  Login Activity의

Session.getCurrentSession().addCallback(callback)

에서 오류가 발생하게 된다.


또한 로그를 확인해보면 오류 내용은 다음과 같다.


 

1
2
3
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxxx.xxxx.xxxx/com.xxxx.xxxx.xxxx.LoginActivity}: 
java.lang.IllegalStateException: Session is not initialized. Call KakaoSDK#init first.
 
cs


보시다시피 세션이 초기화 되지 않았다는 것이다.

왜 이런 오류가 발생할까.



 

1
2
3
4
5
6
7
8
    @Override
    public void onCreate() {
        super.onCreate();
        instance = this;
 
        KakaoSDK.init(new KakaoSDKAdapter());
    }
 
cs

 

 

다음은 샘플소스 중 GlobalApplication의 onCreate 메소드이다.

하단에 있는 KakaoSDK.init(new KakaoSDKAdapter())가 세션을 초기화한다.

해당 코드가 onCreate 내부에 있음에도 불구하고 다음과 같은 오류가 발생하였다는것은

GlobalApplication이 메니페스트에 제대로 등록되지 않았을 가능성이있다.




AndroidMenifest.xml


 

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
26
27
28
29
30
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.anew.kakao">
 
    <uses-permission android:name="android.permission.INTERNET" />
 
    <application
        android:name=".GlobalApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".LoginActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <meta-data
            android:name="com.kakao.sdk.AppKey"
            android:value="@string/kakao_app_key" />
        <activity android:name=".KakaoSignupActivity"/>
        <activity android:name=".MainActivity"/>
 
    </application>
 
</manifest>
 
cs


매니페스트를 통째로 옮겨 보았다.

8번째 줄에 GlobalApplication이 등록된 것을 확인할 수 있다.




카카오톡 개발자 페이지에서도 같은 증상에 다음과 같은 답변이다.

따라서 세션의 초기화가 원인일 확률이 크며,  다른 이유가 있을 수 있으니 샘플 코드를 확인해보기 바란다.  



참고 소스 :

http://blog.naver.com/aufcl4858/220783021359



신고

AWS를 설정하고 로컬 호스트로는 접속이 되는데 외부에서 서버 IP로 연결이 되지 않는 경우가 있다.


뿐만아니라 내부에서도 서버 IP는 접속이 되지않는다.


아무리 AWS의 security group의 허용 포트를 추가 해봐도 접속이 되지 않는다.


몇시간 구글링한 끝에 해답을 찾아냈다.


바로 서버 내부에서 수동으로 방화벽을 해제 하는 것이다.




1. 윈도우에서 방화벽을 검색한다.(firewall)







2. 방화벽의 모습이다. 좌측에 Advanced settings를 클릭해주자.







3. 좌측에 Inbound Rules를 클릭한다. Inbound는 내부, Outbound는 외부에서 접근하는 방화벽 규칙이다.


Inbound Rules 클릭 후 오른쪽에 New Rule을 클릭하여 새롭게 내부에서 허용하는 포트를 추가하자.







4. 포트를 추가할 것이므로 2번째 Port를 선택.







5. 접근을 허용할 포트 번호를 추가한다. 제일 기본이 되는 톰캣 8080과 기타 포트들을 추가하였다.




설정을 마친 후 8080포트로 접근하였을 때 톰캣의 화면이 실행이 되는것을 확인할 수 있다.


정확하게 어떤 이유때문에 EC2 설정화면에서 방화벽이 설정되지 않는지 잘 모르겠지만


웹에서 설정이 되지 않는다면 서버에서 수동으로 방화벽을 해제해 주도록 하자.


신고

 com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/DEPENDENCIES


안드로이드와 서버 연동이 쉬운일 만은 아닌것같다.


이때까지 JSP로 프로젝트 하나 진행한 소스를 우려먹으며 꾸역꾸역 진행하고 있는데 


간단한 연결 조차 아직 불통이다.


안드로이드->JSP에 데이터를 POST 형식으로 보내려니 라이브러리가 필요하다고 한다.


아파치 홈페이지를 뒤져서 서버연결에 필요한 라이브러리들을 첨부한다.

(HttpClient, HttpPost)


라이브러리를 안드로이드 스튜디오에 등록하고 컴파일하니 다음과 같은 오류가 발생했다.


Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.

> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/DEPENDENCIES

File1: C:\workspace\test2\app\libs\httpclient-cache-4.5.2.jar

File2: C:\workspace\test2\app\libs\httpmime-4.5.2.jar

File3: C:\workspace\test2\app\libs\apache-mime4j-0.6.jar

File4: C:\workspace\test2\app\libs\httpclient-4.5.2.jar

File5: C:\workspace\test2\app\libs\httpcore-4.4.4.jar

File6: C:\workspace\test2\app\libs\httpclient-win-4.5.2.jar

File7: C:\workspace\test2\app\libs\fluent-hc-4.5.2.jar


이유는 잘모르겠지만 추가한 jar파일에 대한 오류인가보다


METAINF/DEPENDENCIES를 키워드로 검색해보니 


APP레벨의 Gradle에 다음과 같은 코드를 추가해주면 해결된다고 한다.


android {
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
}
}

패키징 옵션에 대한 수정인듯하다.


코드를 추가해주니 말끔하게 해결되었다.


신고

Several ports (8005, 8080, 8009) required by Tomcat...


톰캣에서 test jsp 파일이 돌아가지 않는다. 


그리고 다음과 같은 경고창이 뜬다.


Several ports (8005, 8080, 8009) required by Tomcat v8.0 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s).


톰캣의 기본 포트가 이미 사용중이라는 메세지.


찾아보니 그냥 쓰고있는 포트 번호를 바꾸랜다. 


테스트용 로컬 서버라서 바꿔도 별 탈 없을듯 하다. 그래서 바로 바꿨더니 실행이 된다.




포트 바꿨다고 다른 에러는 없겠지...?




출처:

http://ppomppu.co.kr/zboard/view.php?id=developer&no=8347


 

신고

ClassNotFoundException com.mysql.jdbc.Driver


안드로이드 과제를 위해 JDBC 설정을 하던중 Driver를 찾지 못해서 발생한 오류이다.


 

1
2
3
4
5
6
7
8
9
10
11
12
    try{
    Connection conn = null;
    String url = "jdbc:Mysql://localhost:3306?";                                                            
    String id = "root";                               
    String pw = "14858";
    Class.forName("com.mysql.jdbc.Driver");            
    conn=DriverManager.getConnection(url,id,pw);                  
 
    stmt=conn.createStatement();
    
    String query = "SELECT * FROM soma.rank";
    rs = stmt.executeQuery(query);
cs

 

문제의 발단은 Try 안의 드라이버 호출메소드,

Class.forName("com.mysql.jdbc.Driver")


분명히 connect 다운로드 후 프로젝트의 Bulid path에 추가해 주었는데도 문제가 발생하였다.


빠르게 구글링, 역시 해답은 Stack overflow에 있었다.






1에서 3까지는 등록했는데 남은 부분이 있었다.


분명히 올해 초에 프로젝트에서는 3까지 과정만 진행해도 충분히 잘 됐었는데...


아무튼 드라이버 등록후 jsp를 실행하니 DB와 연동하여 값을 잘 받아오는것을 확인할 수 있었다. 




출처:

http://stackoverflow.com/questions/1585811/classnotfoundexception-com-mysql-jdbc-driver




신고

+ Recent posts

티스토리 툴바