关门了。这个问题需要调试详细信息..。它目前不接受答案。
想要改进这个问题吗?更新问题,使其成为主题堆栈溢出。
10天前就关门了。
改进这个问题
我对Android Studio和java编程真的很陌生。
我正在尝试创建一个新的项目,只是为了实验和学习。
这个应用程序有很长的文本,我使用字符串格式化它,也作为资源。
但是,在1400+文本和格式化之后,活动崩溃。
我可以知道字符串资源有限制吗?
克服这些问题的方法是什么?
我想使用原始文本,但就我目前的理解,没有办法将其格式化为字符串。
如果有人能帮上忙的话真的很感谢。
\编辑
下面是错误
2021-02-20 14:03:15.512 26003-26003/? E/example.munaja: Unknown bits set in runtime_flags: 0x8000
2021-02-20 14:03:15.528 26003-26003/com.example.munajat E/libc: Access denied finding property "runtime.mmitest.isrunning"
2021-02-20 14:03:15.734 26003-26042/com.example.munajat E/AwareLog: AtomicFileUtils: readFileLines file not exist: android.util.AtomicFile@becf0c7
下面是我启动崩溃的活动时的完整堆栈跟踪
2021-02-20 14:08:19.733 26422-26422/? I/example.munaja: Late-enabling -Xcheck:jni
2021-02-20 14:08:19.765 26422-26422/? E/example.munaja: Unknown bits set in runtime_flags: 0x8000
2021-02-20 14:08:19.767 26422-26422/? I/example.munaja: Reinit property: dalvik.vm.checkjni= false
2021-02-20 14:08:19.775 26422-26422/? W/re-initialized>: type=1400 audit(0.0:666616): avc: denied { read } for pid=26422 name="u:object_r:mmi_prop:s0" dev="tmpfs" ino=15380 scontext=u:r:untrusted_app:s0:c159,c257,c512,c768 tcontext=u:object_r:mmi_prop:s0 tclass=file permissive=0
2021-02-20 14:08:19.778 26422-26422/? E/libc: Access denied finding property "runtime.mmitest.isrunning"
2021-02-20 14:08:19.782 26422-26422/? D/ActivityThread: Attach thread to application
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::Init
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::StartWatch
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::WatchPackage: /data/hotpatch/fwkhotpatch/
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::CheckAndWatchPatch: /data/hotpatch/fwkhotpatch/com.example.munajat
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::CheckAndWatchPatch: /data/hotpatch/fwkhotpatch/all
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::Run
2021-02-20 14:08:19.925 26422-26441/com.example.munajat I/HwApiCacheMangerEx: apicache path=/storage/emulated/0 state=mounted key=com.example.munajat#10415#256
2021-02-20 14:08:19.925 26422-26456/com.example.munajat I/example.munaja: QarthPatchMonintor::Reading
2021-02-20 14:08:19.925 26422-26441/com.example.munajat I/HwApiCacheMangerEx: apicache path=/storage/1538-291C state=mounted key=com.example.munajat#10415#256
2021-02-20 14:08:19.925 26422-26456/com.example.munajat I/example.munaja: QarthPatchMonintor::CheckNotifyEvent
2021-02-20 14:08:19.926 26422-26456/com.example.munajat I/example.munaja: QarthPatchMonintor::CheckNotifyEvent before read
2021-02-20 14:08:19.927 26422-26441/com.example.munajat I/HwApiCacheMangerEx: apicache path=/storage/emulated/0 state=mounted key=com.example.munajat#10415#0
2021-02-20 14:08:19.927 26422-26441/com.example.munajat I/HwApiCacheMangerEx: apicache path=/storage/1538-291C state=mounted key=com.example.munajat#10415#0
2021-02-20 14:08:19.930 26422-26441/com.example.munajat I/AwareBitmapCacher: init processName:com.example.munajat pid=26422 uid=10415
2021-02-20 14:08:19.962 26422-26458/com.example.munajat E/AwareLog: AtomicFileUtils: readFileLines file not exist: android.util.AtomicFile@b449e48
2021-02-20 14:08:19.999 26422-26422/com.example.munajat V/ActivityThread: callActivityOnCreate
2021-02-20 14:08:20.021 26422-26422/com.example.munajat V/HwWidgetFactory: : successes to get AllImpl object and return....
2021-02-20 14:08:20.047 26422-26422/com.example.munajat W/example.munaja: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed)
2021-02-20 14:08:20.048 26422-26422/com.example.munajat W/example.munaja: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)
2021-02-20 14:08:20.060 26422-26422/com.example.munajat I/OverScrollerOptimization: start init SmartSlideOverScroller and get the overscroller config
2021-02-20 14:08:20.060 26422-26422/com.example.munajat I/OverScrollerOptimization: get the overscroller config
2021-02-20 14:08:20.246 26422-26422/com.example.munajat D/myLog: 2:08 pm
2021-02-20 14:08:20.253 26422-26422/com.example.munajat D/myLog: Sat Feb 20 14:08:20 GMT+08:00 2021
2021-02-20 14:08:20.253 26422-26422/com.example.munajat D/myLog: Saturday, 20 February 2021
2021-02-20 14:08:20.256 26422-26422/com.example.munajat D/ActivityThread: add activity client record, r= ActivityRecord{ebb44ec token=android.os.BinderProxy@91c585c {com.example.munajat/com.example.munajat.home}} token= android.os.BinderProxy@91c585c
2021-02-20 14:08:20.293 26422-26463/com.example.munajat D/HiTouch_PressGestureDetector: onAttached, package=com.example.munajat, windowType=1, mHiTouchRestricted=false
2021-02-20 14:08:20.329 26422-26460/com.example.munajat I/iGraphics: [0020080c] pn: com.example.munajat, p: 26422
2021-02-20 14:08:20.329 26422-26460/com.example.munajat I/iGraphics: [0030080c] no spt app: com.example.munajat
2021-02-20 14:08:20.346 26422-26460/com.example.munajat D/mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
2021-02-20 14:08:20.419 26422-26460/com.example.munajat W/Gralloc3: mapper 3.x is not supported
2021-02-20 14:08:20.462 26422-26422/com.example.munajat I/HwViewRootImpl: removeInvalidNode jank list is null
发布于 2021-02-20 02:27:59
String.length()方法返回字符串的长度。字符串的长度等于字符串中Unicode单元的数量。Java平台在char数组(每个字符需要两个字节)、String和StringBuffer类中使用UTF-16表示。
该方法返回int类型的长度。所以,字符串maximum size与range of integer data type..。该方法返回的最大长度为Integer.MAX_VALUE..。
Java中int的大小是4个字节(包括一个带符号的位,即MSB)。integer数据类型的范围是-231到231-1 (-2147483648到2147483647)。请记住,我们不能使用负值进行索引。索引是在最大范围内完成的。这意味着我们不能存储第2147483648个字符。因此,Java中字符串的最大长度为0到2147483647。因此,理论上,我们可以有一个长度为2,147,483,647个字符的字符串。
import java.util.Arrays;
class StringMaxSize {
public static void main(String args[]) {
for (int i = 0; i < 1000; i++) {
try {
//Integer.MAX_VALUE is a constant that stores the maximum possible value for any integer variable
char[] array = new char[Integer.MAX_VALUE - i];
//assign the specified data value to each element
Arrays.fill(array, 'a');
//creating a constructor of the String class and parses an array into it
String str = new String(array);
//determines and print the length of the string
System.out.println(str.length());
} catch (Throwable e) {
// returns the detail message string of this throwable
System.out.println(e.getMessage());
//prints the maximum value
System.out.println("Last: " + (Integer.MAX_VALUE - i));
System.out.println("Last: " + i);
}
}
}
}
输出:
所以,1400+文本并不是真正的问题。
有关更多详细信息,请参阅以下内容
链接..。
https://stackoverflow.com/questions/66282838
复制相似问题