我正在关注Facebook指南,为Android制作登录应用程序.后:
该项目编制.但是,当我运行机器并尝试打开应用程序时,它崩溃显示:
不幸的是,该应用程序已停止.
我使用Android 0.5.8,Oracle JDK 7和API 16作为目标,最小和最大.
主要文件是activity_main.xml,MainActivity.java和MainFragment.java.
这是最新的logcat输出:
05-30 03:15:54.127 647-664/com.jdk8.minifacebookloginapp.app E/AndroidRuntime? FATAL EXCEPTION: AsyncTask #1
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.containsKey(ConcurrentHashMap.java:781)
at com.facebook.internal.Utility.queryAppSettings(Utility.java:372)
at com.facebook.widget.LoginButton$1.doInBackground(LoginButton.java:676)
at …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Fedor编写和上传的代码发布在这个线程 中ListView中的图像延迟加载(源代码:http://open-pim.com/tmp/LazyList.zip)
Fedor的项目运行良好,但是当我尝试将代码调整到我的项目时,由于我碰到了这个异常(SocketException),所以事情运行得不好.
不知何故,即使在清单中设置权限以获得Internet权限之后,我仍然继续获取它(是的,我有一个Internet连接工作):
<uses-sdk android:minSdkVersion="8">
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
</uses-sdk>
Run Code Online (Sandbox Code Playgroud)
例外:SocketException:权限被拒绝.观看LogCat详细信息.
09-24 23:43:00.591: ERROR/File was not found.(1124): /mnt/sdcard/ListViewTest/-421624214 (No such file or directory)
09-24 23:43:00.601: WARN/System.err(1124): java.net.SocketException: Permission denied
09-24 23:43:00.611: WARN/System.err(1124): at org.apache.harmony.luni.platform.OSNetworkSystem.createStreamSocketImpl(Native Method)
09-24 23:43:00.611: WARN/System.err(1124): at org.apache.harmony.luni.platform.OSNetworkSystem.createStreamSocket(OSNetworkSystem.java:186)
09-24 23:43:00.622: WARN/System.err(1124): at org.apache.harmony.luni.net.PlainSocketImpl.create(PlainSocketImpl.java:265)
09-24 23:43:00.632: WARN/System.err(1124): at java.net.Socket.checkClosedAndCreate(Socket.java:873)
09-24 23:43:00.632: WARN/System.err(1124): at java.net.Socket.connect(Socket.java:1020)
09-24 23:43:00.632: WARN/System.err(1124): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:62)
09-24 23:43:00.642: WARN/System.err(1124): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:88)
09-24 23:43:00.642: WARN/System.err(1124): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHTTPConnection(HttpURLConnectionImpl.java:927)
09-24 23:43:00.652: WARN/System.err(1124): at …Run Code Online (Sandbox Code Playgroud) 我得到例外" http://api.openweathermap.org/data/2.5/weather?q=Sydney ".有人可以帮助如何使用它.粘贴以下内容时,可以使用Web浏览器正常工作
http://api.openweathermap.org/data/2.5/weather?q=Sydney&APPID=ea574594b9d36ab688642d5fbeab847e
我尝试了以下组合,但没有运气
connection.addRequestProperty("x-api-key",
"&APPID=cea574594b9d36ab688642d5fbeab847e");
private static final String OPEN_WEATHER_MAP_API =
"http://api.openweathermap.org/data/2.5/weather?q=%s";
public static JSONObject getJSON(String city) {
try {
URL url = new URL(String.format(OPEN_WEATHER_MAP_API, city));
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.addRequestProperty("x-api-key",
"cea574594b9d36ab688642d5fbeab847e");
BufferedReader reader =
new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuffer json = new StringBuffer(1024);
String tmp = "";
while((tmp = reader.readLine()) != null)
json.append(tmp).append("\n");
reader.close();
JSONObject data = new JSONObject(json.toString());
if(data.getInt("cod") != 200) {
System.out.println("Cancelled");
return null;
}
return data;
} catch (Exception e) {
System.out.println("Exception "+ e.getMessage()); …Run Code Online (Sandbox Code Playgroud)